diff --git a/ethexe/common/src/db.rs b/ethexe/common/src/db.rs index cb50920e126..49c513a6521 100644 --- a/ethexe/common/src/db.rs +++ b/ethexe/common/src/db.rs @@ -265,7 +265,7 @@ mod tests { #[test] fn ensure_types_unchanged() { const EXPECTED_TYPE_INFO_HASH: &str = - "d43d8ab319fb6d934231dba55950c9825e28c6ecf603e8076a90e0cab3855671"; + "75cc4a2bcd0cc559bad7a587812b336e4f44ea7b5d8576ebfe6426dbbef2ca8e"; let types = [ meta_type::(), diff --git a/ethexe/common/src/events/router.rs b/ethexe/common/src/events/router.rs index 2ad7e9e1de6..3728e2b512e 100644 --- a/ethexe/common/src/events/router.rs +++ b/ethexe/common/src/events/router.rs @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 use crate::Digest; -use gprimitives::{ActorId, CodeId, H256}; +use gprimitives::{ActorId, CodeId, H256, U256}; use parity_scale_codec::{Decode, Encode}; use scale_info::TypeInfo; @@ -22,6 +22,11 @@ pub struct MBCommittedEvent(pub H256); #[derive(Clone, Debug, Encode, Decode, TypeInfo, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct EBCommittedEvent(pub H256); +#[derive(Clone, Debug, Encode, Decode, TypeInfo, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub struct ProtocolVersionChangedEvent { + pub new_protocol_version: U256, +} + #[derive(Clone, Debug, Encode, Decode, TypeInfo, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct CodeGotValidatedEvent { pub code_id: CodeId, @@ -74,6 +79,7 @@ pub enum Event { // TODO: on review ask about backward compatibility StorageSlotChanged(StorageSlotChangedEvent), ValidatorsCommittedForEra(ValidatorsCommittedForEraEvent), + ProtocolVersionChanged(ProtocolVersionChangedEvent), } impl Event { @@ -91,7 +97,8 @@ impl Event { Self::CodeGotValidated { .. } | Self::MBCommitted(_) | Self::EBCommitted(_) - | Self::BatchCommitted { .. } => return None, + | Self::BatchCommitted { .. } + | Self::ProtocolVersionChanged { .. } => return None, }) } } diff --git a/ethexe/contracts/src/IRouter.sol b/ethexe/contracts/src/IRouter.sol index 7776efdee63..66cf9125a45 100644 --- a/ethexe/contracts/src/IRouter.sol +++ b/ethexe/contracts/src/IRouter.sol @@ -66,6 +66,10 @@ interface IRouter { * This extra fee is paid in WVARA ERC20 token. */ uint256 requestCodeValidationExtraFee; + /** + * @notice The version of the protocol, used by nodes. + */ + uint256 protocolVersion; } /** @@ -143,6 +147,13 @@ interface IRouter { */ event EBCommitted(bytes32 ethBlockHash); + /** + * @notice Emitted when the protocol version is changed. + * @dev This is an *informational* event, signaling that the protocol version has been changed. + * @param newProtocolVersion The new version of the protocol. + */ + event ProtocolVersionChanged(uint256 newProtocolVersion); + /** * @notice Emitted when a code, previously requested for validation, receives validation results, so its `Gear.CodeState` changed. * @dev This is an *informational* event, signaling the results of code validation. @@ -470,6 +481,12 @@ interface IRouter { */ function requestCodeValidationExtraFee() external view returns (uint256); + /** + * @dev Returns the current protocol version. + * @return protocolVersion The current protocol version. + */ + function protocolVersion() external view returns (uint256); + /** * @dev Returns the timelines. * @return timelines The timelines. @@ -502,6 +519,12 @@ interface IRouter { */ function setRequestCodeValidationExtraFee(uint256 newExtraFee) external; + /** + * @dev Bumps the version of the protocol, used by nodes. + * Emits `ProtocolVersionChanged` event. + */ + function bumpProtocolVersion() external; + /** * @dev Pauses the contract. */ diff --git a/ethexe/contracts/src/Router.sol b/ethexe/contracts/src/Router.sol index ffca0795918..d18a9764acb 100644 --- a/ethexe/contracts/src/Router.sol +++ b/ethexe/contracts/src/Router.sol @@ -48,6 +48,8 @@ contract Router is bytes32 private constant REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH = 0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097; + uint256 private constant PROTOCOL_VERSION = 1; + /** * @custom:oz-upgrades-unsafe-allow constructor */ @@ -121,6 +123,8 @@ contract Router is block.timestamp ); // forge-lint: disable-end(block-timestamp) + + router.protocolData.protocolVersion = PROTOCOL_VERSION; } /** @@ -190,6 +194,7 @@ contract Router is uint256 decimalsFactor = 10 ** IWrappedVara(router.implAddresses.wrappedVara).decimals(); router.protocolData.requestCodeValidationBaseFee = DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE * decimalsFactor; router.protocolData.requestCodeValidationExtraFee = DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE * decimalsFactor; + router.protocolData.protocolVersion = PROTOCOL_VERSION; } /** @@ -218,7 +223,8 @@ contract Router is validatedCodesCount: router.protocolData.validatedCodesCount, maxValidators: router.protocolData.maxValidators, requestCodeValidationBaseFee: router.protocolData.requestCodeValidationBaseFee, - requestCodeValidationExtraFee: router.protocolData.requestCodeValidationExtraFee + requestCodeValidationExtraFee: router.protocolData.requestCodeValidationExtraFee, + protocolVersion: router.protocolData.protocolVersion }); } @@ -455,6 +461,14 @@ contract Router is return _router().protocolData.requestCodeValidationExtraFee; } + /** + * @dev Returns the current protocol version. + * @return protocolVersion The current protocol version. + */ + function protocolVersion() external view returns (uint256) { + return _router().protocolData.protocolVersion; + } + /** * @dev Returns the timelines. * @return timelines The timelines. @@ -497,6 +511,17 @@ contract Router is _router().protocolData.requestCodeValidationExtraFee = newExtraFee; } + /** + * @dev Bumps the version of the protocol, used by nodes. + * Emits `ProtocolVersionChanged` event. + */ + function bumpProtocolVersion() external onlyOwner { + uint256 newProtocolVersion = _router().protocolData.protocolVersion + 1; + _router().protocolData.protocolVersion = newProtocolVersion; + + emit ProtocolVersionChanged(newProtocolVersion); + } + /** * @dev Pauses the contract. */ diff --git a/ethexe/contracts/src/libraries/Gear.sol b/ethexe/contracts/src/libraries/Gear.sol index d290b621346..bc564299378 100644 --- a/ethexe/contracts/src/libraries/Gear.sol +++ b/ethexe/contracts/src/libraries/Gear.sol @@ -405,6 +405,11 @@ library Gear { * This extra fee is paid in WVARA ERC20 token. */ uint256 requestCodeValidationExtraFee; + /** + * @notice The version of the protocol, used by nodes. + * @dev This contains the version of the protocol, which can be used by nodes. + */ + uint256 protocolVersion; } /** diff --git a/ethexe/ethereum/abi/BatchMulticall.json b/ethexe/ethereum/abi/BatchMulticall.json index fbd754140b8..86438441911 100644 --- a/ethexe/ethereum/abi/BatchMulticall.json +++ b/ethexe/ethereum/abi/BatchMulticall.json @@ -1 +1 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createProgramBatch","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.CreateProgramCall[]","components":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initPayload","type":"bytes","internalType":"bytes"},{"name":"initValue","type":"uint128","internalType":"uint128"},{"name":"topUpValue","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"sendMessageBatch","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.MessageCall[]","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"SendMessageBatchResult","inputs":[{"name":"messageIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"ApproveFailed","inputs":[]},{"type":"error","name":"InsufficientValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RefundFailed","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]}],"bytecode":{"object":"0x608080604052346015576108b7908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;;;;;;;;;;;;;;:::i;:::-;3392:27;;;;:::i;:::-;3430:16;1190:5485;3462:13;1190:5485;3477:16;;;;;;3581:9;3561:70;3581:9;;;3569:21;;;3561:70;:::i;:::-;1190:5485;3662:16;;;;;;3581:9;;;3907:20;;3903:163;;3642:251;4081:34;1190:5485;;;;;;;;;;;;;;;:::i;:::-;4081:34;;;1190:5485;3903:163;1190:5485;3581:9;;3984:20;3581:9;;;3984:20;:::i;:::-;3961:10;:48;;;;:::i;:::-;;1190:5485;;;3903:163;;;1190:5485;;;;;;;;;3680:3;3734:8;;;;;:::i;:::-;1190:5485;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;3836:17;1190:5485;3836:17;3855:19;-1:-1:-1;;;;;3836:17:153;1190:5485;3789:93;3836:17;;;:::i;:::-;1190:5485;3855:19;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;;3789:93;;1190:5485;3789:93;;;:::i;:::-;;;;;;;;;1190:5485;3789:93;;;3680:3;1190:5485;3757:125;;;;;;:::i;:::-;1190:5485;;3647:13;;3789:93;;1190:5485;3789:93;;;;;;;;;1190:5485;3789:93;;;:::i;:::-;;;1190:5485;;;;;;;3789:93;;1190:5485;;;;3789:93;;;-1:-1:-1;3789:93:153;;;1190:5485;;;;;;;;;3495:3;3526:8;3514:26;1190:5485;3526:8;-1:-1:-1;;;;;3526:14:153;1190:5485;3526:8;;;;;:::i;:::-;:14;;:::i;:::-;1190:5485;3514:26;;:::i;:::-;3495:3;1190:5485;3462:13;;1190:5485;;;-1:-1:-1;;1190:5485:153;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1190:5485:153;;;;4847:27;;;:::i;:::-;1190:5485;;;;;;4919:20;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;;;1190:5485;4919:20;;;1190:5485;-1:-1:-1;1190:5485:153;;;;-1:-1:-1;;1190:5485:153;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;4951:16;4983:13;1190:5485;5016:3;4998:16;;;;;;1190:5485;;;;;;;;;;;;;;;;;5104:39;5116:27;;;;-1:-1:-1;;;;;5116:27:153;;;:::i;5104:39::-;5178:9;5158:70;5178:9;;;5166:21;;;5158:70;:::i;:::-;1190:5485;;5263:85;1190:5485;;;;;;;;;5263:85;;1190:5485;;;5263:85;;1190:5485;5310:22;;;1190:5485;;;;;5342:4;1190:5485;;;;5263:85;;;;;;;1190:5485;5263:85;;;5016:3;5362:25;;;;;:::i;:::-;-1:-1:-1;;;;;1190:5485:153;;;;;;;5455:28;;;-1:-1:-1;;;;;5455:28:153;;;:::i;:::-;1190:5485;5451:390;;5016:3;5917:27;;5891:92;5917:27;5946:29;-1:-1:-1;;;;;5917:27:153;1190:5485;5917:27;;:::i;:::-;1190:5485;5946:29;1190:5485;5946:29;;;;:::i;5891:92::-;;;;;;;;;1190:5485;5891:92;;;5016:3;1190:5485;5997:25;;;;;;:::i;:::-;1190:5485;;4983:13;;5891:92;;1190:5485;5891:92;;;;;;;;;1190:5485;5891:92;;;:::i;:::-;;;1190:5485;;;;;;;5891:92;;;;;-1:-1:-1;5891:92:153;;5451:390;5582:28;1190:5485;-1:-1:-1;;;;;5263:85:153;5582:28;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;5536:75;;5555:10;1190:5485;5536:75;;1190:5485;5342:4;1190:5485;;;;;;;;;5536:75;;;;;;;1190:5485;5536:75;;;5451:390;1190:5485;;;;5702:28;1190:5485;-1:-1:-1;;;;;1190:5485:153;5702:28;;;:::i;:::-;1190:5485;;;;;;;;;;;5677:54;;;1190:5485;5677:54;;1190:5485;;;;;;5677:54;;;;;;;1190:5485;5677:54;;;5451:390;1190:5485;;;;5797:28;;;:::i;:::-;5767:59;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;5767:59;;1190:5485;;5767:59;;1190:5485;;5767:59;1190:5485;5767:59;;;;;;;;;;-1:-1:-1;;;;;5917:27:153;5946:29;5767:59;5891:92;5767:59;1190:5485;5767:59;;;5451:390;;;;;;;;;;;5767:59;1190:5485;5767:59;;;:::i;:::-;;;;1190:5485;;;;;;;;;5677:54;;;;1190:5485;5677:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1190:5485;;;;;;;;;5536:75;;;;1190:5485;5536:75;;;;;;;;;:::i;:::-;;;;5263:85;;;;;1190:5485;5263:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;4998:16;;;;;5178:9;6047:20;;6043:163;;4978:1055;1190:5485;;;;;;;;;;;;;;;5116:27;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;6043:163;1190:5485;5178:9;;6124:20;5178:9;;;6124:20;:::i;:::-;6101:10;:48;;;;:::i;:::-;;1190:5485;;;6043:163;;;4919:20;;;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;:::i;:::-;;;;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1190:5485:153;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;:::i;:::-;;;;-1:-1:-1;1190:5485:153;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RefundFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"messageIds\",\"type\":\"bytes32[]\"}],\"name\":\"SendMessageBatchResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"initValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"topUpValue\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.CreateProgramCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"createProgramBatch\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.MessageCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"sendMessageBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts. This is useful for reducing number of transactions when interacting with multiple Mirror contracts. Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network. Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster. This contract allows both batching of messages and batching of program creations. Furthermore, when creating programs, it offers full flow: - approval of WVARA ERC20 token for created program (Mirror) - top-up of executable balance for created program in WVARA ERC20 token (Mirror) - sending initial message to created program (Mirror) All of these actions are done in one transaction, which is much faster than doing them separately.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"Approving WVARA token for created program (Mirror) failed.\"}],\"InsufficientValue(uint256,uint256)\":[{\"details\":\"There is not enough value sent with transaction to cover calls.\"}],\"RefundFailed()\":[{\"details\":\"Refunding excess value to sender failed.\"}],\"TransferFromFailed()\":[{\"details\":\"Transferring WVARA token from sender to this contract failed.\"}]},\"events\":{\"SendMessageBatchResult(bytes32[])\":{\"details\":\"Emitted when batch of messages is sent. It contains array of message ids that were sent.\"}},\"kind\":\"dev\",\"methods\":{\"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])\":{\"details\":\"Creates batch of programs through Router contract and sends initial messages to them.\",\"params\":{\"calls\":\"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\",\"router\":\"The Router contract address.\"},\"returns\":{\"_0\":\"programIds Array of created program IDs.\",\"_1\":\"messageIds Array of message IDs for the initial messages sent to each created program.\"}},\"sendMessageBatch((address,bytes,uint128)[])\":{\"details\":\"Sends batch of messages through Mirror contracts.\",\"params\":{\"calls\":\"Array of `MessageCall` structs representing calls to send messages through Mirror contracts.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BatchMulticall.sol\":\"BatchMulticall\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf\",\"dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApproveFailed"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"RefundFailed"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[{"internalType":"bytes32[]","name":"messageIds","type":"bytes32[]","indexed":false}],"type":"event","name":"SendMessageBatchResult","anonymous":false},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"struct BatchMulticall.CreateProgramCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initPayload","type":"bytes"},{"internalType":"uint128","name":"initValue","type":"uint128"},{"internalType":"uint128","name":"topUpValue","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"createProgramBatch","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct BatchMulticall.MessageCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"sendMessageBatch"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":{"details":"Creates batch of programs through Router contract and sends initial messages to them.","params":{"calls":"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.","router":"The Router contract address."},"returns":{"_0":"programIds Array of created program IDs.","_1":"messageIds Array of message IDs for the initial messages sent to each created program."}},"sendMessageBatch((address,bytes,uint128)[])":{"details":"Sends batch of messages through Mirror contracts.","params":{"calls":"Array of `MessageCall` structs representing calls to send messages through Mirror contracts."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74","urls":["bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf","dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":73729,"exportedSymbols":{"BatchMulticall":[73728],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006]},"nodeType":"SourceUnit","src":"74:6602:153","nodes":[{"id":73346,"nodeType":"PragmaDirective","src":"74:24:153","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":73348,"nodeType":"ImportDirective","src":"100:40:153","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":73347,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73350,"nodeType":"ImportDirective","src":"141:40:153","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":73349,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"149:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73352,"nodeType":"ImportDirective","src":"182:50:153","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":73351,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"190:12:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73728,"nodeType":"ContractDefinition","src":"1190:5485:153","nodes":[{"id":73360,"nodeType":"ErrorDefinition","src":"1312:58:153","nodes":[],"documentation":{"id":73354,"nodeType":"StructuredDocumentation","src":"1220:87:153","text":" @dev There is not enough value sent with transaction to cover calls."},"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"1318:17:153","parameters":{"id":73359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73356,"mutability":"mutable","name":"expected","nameLocation":"1344:8:153","nodeType":"VariableDeclaration","scope":73360,"src":"1336:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73355,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73358,"mutability":"mutable","name":"actual","nameLocation":"1362:6:153","nodeType":"VariableDeclaration","scope":73360,"src":"1354:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1354:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1335:34:153"}},{"id":73363,"nodeType":"ErrorDefinition","src":"1445:21:153","nodes":[],"documentation":{"id":73361,"nodeType":"StructuredDocumentation","src":"1376:64:153","text":" @dev Refunding excess value to sender failed."},"errorSelector":"f0c49d44","name":"RefundFailed","nameLocation":"1451:12:153","parameters":{"id":73362,"nodeType":"ParameterList","parameters":[],"src":"1463:2:153"}},{"id":73366,"nodeType":"ErrorDefinition","src":"1562:27:153","nodes":[],"documentation":{"id":73364,"nodeType":"StructuredDocumentation","src":"1472:85:153","text":" @dev Transferring WVARA token from sender to this contract failed."},"errorSelector":"7939f424","name":"TransferFromFailed","nameLocation":"1568:18:153","parameters":{"id":73365,"nodeType":"ParameterList","parameters":[],"src":"1586:2:153"}},{"id":73369,"nodeType":"ErrorDefinition","src":"1682:22:153","nodes":[],"documentation":{"id":73367,"nodeType":"StructuredDocumentation","src":"1595:82:153","text":" @dev Approving WVARA token for created program (Mirror) failed."},"errorSelector":"3e3f8f73","name":"ApproveFailed","nameLocation":"1688:13:153","parameters":{"id":73368,"nodeType":"ParameterList","parameters":[],"src":"1701:2:153"}},{"id":73375,"nodeType":"EventDefinition","src":"1827:51:153","nodes":[],"anonymous":false,"documentation":{"id":73370,"nodeType":"StructuredDocumentation","src":"1710:112:153","text":" @dev Emitted when batch of messages is sent. It contains array of message ids that were sent."},"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"1833:22:153","parameters":{"id":73374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73373,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"1866:10:153","nodeType":"VariableDeclaration","scope":73375,"src":"1856:20:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1856:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73372,"nodeType":"ArrayTypeName","src":"1856:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1855:22:153"}},{"id":73383,"nodeType":"StructDefinition","src":"2150:96:153","nodes":[],"canonicalName":"BatchMulticall.MessageCall","documentation":{"id":73376,"nodeType":"StructuredDocumentation","src":"1884:261:153","text":" @dev Represents call to send message through Mirror contract.\n It will be sent through `IMirror(mirror).sendMessage{value: value}(payload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73378,"mutability":"mutable","name":"mirror","nameLocation":"2187:6:153","nodeType":"VariableDeclaration","scope":73383,"src":"2179:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73377,"name":"address","nodeType":"ElementaryTypeName","src":"2179:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73380,"mutability":"mutable","name":"payload","nameLocation":"2209:7:153","nodeType":"VariableDeclaration","scope":73383,"src":"2203:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73379,"name":"bytes","nodeType":"ElementaryTypeName","src":"2203:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73382,"mutability":"mutable","name":"value","nameLocation":"2234:5:153","nodeType":"VariableDeclaration","scope":73383,"src":"2226:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73381,"name":"uint128","nodeType":"ElementaryTypeName","src":"2226:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"2157:11:153","scope":73728,"visibility":"public"},{"id":73395,"nodeType":"StructDefinition","src":"2922:160:153","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","documentation":{"id":73384,"nodeType":"StructuredDocumentation","src":"2252:665:153","text":" @dev Represents call to create Mirror through Router contract.\n It will be sent through `IRouter(router).createProgram(codeId, salt, address(this))`,\n where `overrideInitializer` is always `address(this)` since we want to send initial message from this contract.\n Then, if `topUpValue` is greater than 0, it will approve WVARA token and top up executable balance for created Mirror.\n Finally, it will send initial message to created Mirror through `IMirror(programId).sendMessage{value: initValue}(initPayload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73386,"mutability":"mutable","name":"codeId","nameLocation":"2965:6:153","nodeType":"VariableDeclaration","scope":73395,"src":"2957:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2957:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73388,"mutability":"mutable","name":"salt","nameLocation":"2989:4:153","nodeType":"VariableDeclaration","scope":73395,"src":"2981:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2981:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73390,"mutability":"mutable","name":"initPayload","nameLocation":"3009:11:153","nodeType":"VariableDeclaration","scope":73395,"src":"3003:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73389,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73392,"mutability":"mutable","name":"initValue","nameLocation":"3038:9:153","nodeType":"VariableDeclaration","scope":73395,"src":"3030:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73391,"name":"uint128","nodeType":"ElementaryTypeName","src":"3030:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":73394,"mutability":"mutable","name":"topUpValue","nameLocation":"3065:10:153","nodeType":"VariableDeclaration","scope":73395,"src":"3057:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73393,"name":"uint128","nodeType":"ElementaryTypeName","src":"3057:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"2929:17:153","scope":73728,"visibility":"public"},{"id":73517,"nodeType":"FunctionDefinition","src":"3279:843:153","nodes":[],"body":{"id":73516,"nodeType":"Block","src":"3352:770:153","nodes":[],"statements":[{"assignments":[73407],"declarations":[{"constant":false,"id":73407,"mutability":"mutable","name":"messageIds","nameLocation":"3379:10:153","nodeType":"VariableDeclaration","scope":73516,"src":"3362:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3362:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73406,"nodeType":"ArrayTypeName","src":"3362:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73414,"initialValue":{"arguments":[{"expression":{"id":73411,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3406:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3412:6:153","memberName":"length","nodeType":"MemberAccess","src":"3406:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3392:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":73408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3396:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73409,"nodeType":"ArrayTypeName","src":"3396:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3362:57:153"},{"assignments":[73416],"declarations":[{"constant":false,"id":73416,"mutability":"mutable","name":"consumed","nameLocation":"3438:8:153","nodeType":"VariableDeclaration","scope":73516,"src":"3430:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3430:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73417,"nodeType":"VariableDeclarationStatement","src":"3430:16:153"},{"body":{"id":73436,"nodeType":"Block","src":"3500:51:153","statements":[{"expression":{"id":73434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73429,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3514:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":73430,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3526:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73432,"indexExpression":{"id":73431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3532:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3526:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3535:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3526:14:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3514:26:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73435,"nodeType":"ExpressionStatement","src":"3514:26:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3477:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73423,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3481:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3487:6:153","memberName":"length","nodeType":"MemberAccess","src":"3481:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3477:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73437,"initializationExpression":{"assignments":[73419],"declarations":[{"constant":false,"id":73419,"mutability":"mutable","name":"i","nameLocation":"3470:1:153","nodeType":"VariableDeclaration","scope":73437,"src":"3462:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73418,"name":"uint256","nodeType":"ElementaryTypeName","src":"3462:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73421,"initialValue":{"hexValue":"30","id":73420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3474:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3462:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3495:3:153","subExpression":{"id":73426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3497:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73428,"nodeType":"ExpressionStatement","src":"3495:3:153"},"nodeType":"ForStatement","src":"3457:94:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73439,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3569:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73440,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3581:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3585:5:153","memberName":"value","nodeType":"MemberAccess","src":"3581:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3569:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73444,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3610:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73445,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3620:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3624:5:153","memberName":"value","nodeType":"MemberAccess","src":"3620:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73443,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"3592:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73438,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3561:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73449,"nodeType":"ExpressionStatement","src":"3561:70:153"},{"body":{"id":73485,"nodeType":"Block","src":"3685:208:153","statements":[{"assignments":[73463],"declarations":[{"constant":false,"id":73463,"mutability":"mutable","name":"messageCall","nameLocation":"3720:11:153","nodeType":"VariableDeclaration","scope":73485,"src":"3699:32:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":73462,"nodeType":"UserDefinedTypeName","pathNode":{"id":73461,"name":"MessageCall","nameLocations":["3699:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3699:11:153"},"referencedDeclaration":73383,"src":"3699:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":73467,"initialValue":{"baseExpression":{"id":73464,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3734:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73466,"indexExpression":{"id":73465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3740:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3734:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"3699:43:153"},{"expression":{"id":73483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73468,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"3757:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73470,"indexExpression":{"id":73469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3768:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3757:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73479,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3855:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3867:7:153","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73380,"src":"3855:19:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3876:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"expression":{"id":73472,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3797:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3809:6:153","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73378,"src":"3797:18:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73471,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"3789:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":73474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3817:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"3789:39:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73476,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3836:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3848:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3836:17:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"3789:65:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:93:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3757:125:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73484,"nodeType":"ExpressionStatement","src":"3757:125:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3662:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73455,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3666:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3672:6:153","memberName":"length","nodeType":"MemberAccess","src":"3666:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3662:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73486,"initializationExpression":{"assignments":[73451],"declarations":[{"constant":false,"id":73451,"mutability":"mutable","name":"i","nameLocation":"3655:1:153","nodeType":"VariableDeclaration","scope":73486,"src":"3647:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73453,"initialValue":{"hexValue":"30","id":73452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3659:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3647:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3680:3:153","subExpression":{"id":73458,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3682:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73460,"nodeType":"ExpressionStatement","src":"3680:3:153"},"nodeType":"ForStatement","src":"3642:251:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73487,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3907:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3918:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3922:5:153","memberName":"value","nodeType":"MemberAccess","src":"3918:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3907:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73511,"nodeType":"IfStatement","src":"3903:163:153","trueBody":{"id":73510,"nodeType":"Block","src":"3929:137:153","statements":[{"assignments":[73492,null],"declarations":[{"constant":false,"id":73492,"mutability":"mutable","name":"success","nameLocation":"3949:7:153","nodeType":"VariableDeclaration","scope":73510,"src":"3944:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73491,"name":"bool","nodeType":"ElementaryTypeName","src":"3944:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73503,"initialValue":{"arguments":[{"hexValue":"","id":73501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4006:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73493,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3961:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:153","memberName":"sender","nodeType":"MemberAccess","src":"3961:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3972:4:153","memberName":"call","nodeType":"MemberAccess","src":"3961:15:153","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":73500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73496,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3984:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3988:5:153","memberName":"value","nodeType":"MemberAccess","src":"3984:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73498,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3996:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3984:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3961:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3943:66:153"},{"expression":{"arguments":[{"id":73505,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73492,"src":"4031:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73506,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"4040:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73504,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4023:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73509,"nodeType":"ExpressionStatement","src":"4023:32:153"}]}},{"eventCall":{"arguments":[{"id":73513,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"4104:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":73512,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73375,"src":"4081:22:153","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":73514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4081:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73515,"nodeType":"EmitStatement","src":"4076:39:153"}]},"documentation":{"id":73396,"nodeType":"StructuredDocumentation","src":"3088:186:153","text":" @dev Sends batch of messages through Mirror contracts.\n @param calls Array of `MessageCall` structs representing calls to send messages through Mirror contracts."},"functionSelector":"564abd5f","implemented":true,"kind":"function","modifiers":[],"name":"sendMessageBatch","nameLocation":"3288:16:153","parameters":{"id":73401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73400,"mutability":"mutable","name":"calls","nameLocation":"3328:5:153","nodeType":"VariableDeclaration","scope":73517,"src":"3305:28:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":73398,"nodeType":"UserDefinedTypeName","pathNode":{"id":73397,"name":"MessageCall","nameLocations":["3305:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3305:11:153"},"referencedDeclaration":73383,"src":"3305:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":73399,"nodeType":"ArrayTypeName","src":"3305:13:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"3304:30:153"},"returnParameters":{"id":73402,"nodeType":"ParameterList","parameters":[],"src":"3352:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73722,"nodeType":"FunctionDefinition","src":"4570:1684:153","nodes":[],"body":{"id":73721,"nodeType":"Block","src":"4740:1514:153","nodes":[],"statements":[{"assignments":[73538],"declarations":[{"constant":false,"id":73538,"mutability":"mutable","name":"programIds","nameLocation":"4767:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4750:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"4750:7:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73537,"nodeType":"ArrayTypeName","src":"4750:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":73545,"initialValue":{"arguments":[{"expression":{"id":73542,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4794:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4800:6:153","memberName":"length","nodeType":"MemberAccess","src":"4794:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4780:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":73539,"name":"address","nodeType":"ElementaryTypeName","src":"4784:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73540,"nodeType":"ArrayTypeName","src":"4784:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":73544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4780:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4750:57:153"},{"assignments":[73550],"declarations":[{"constant":false,"id":73550,"mutability":"mutable","name":"messageIds","nameLocation":"4834:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4817:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4817:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73549,"nodeType":"ArrayTypeName","src":"4817:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73557,"initialValue":{"arguments":[{"expression":{"id":73554,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4861:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4867:6:153","memberName":"length","nodeType":"MemberAccess","src":"4861:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4847:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":73551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4851:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73552,"nodeType":"ArrayTypeName","src":"4851:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4817:57:153"},{"assignments":[73560],"declarations":[{"constant":false,"id":73560,"mutability":"mutable","name":"wvara","nameLocation":"4898:5:153","nodeType":"VariableDeclaration","scope":73721,"src":"4885:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":73559,"nodeType":"UserDefinedTypeName","pathNode":{"id":73558,"name":"IWrappedVara","nameLocations":["4885:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"4885:12:153"},"referencedDeclaration":75006,"src":"4885:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":73566,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73562,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"4919:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74684,"src":"4919:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":73564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73561,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"4906:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":73565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4906:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"4885:55:153"},{"assignments":[73568],"declarations":[{"constant":false,"id":73568,"mutability":"mutable","name":"consumed","nameLocation":"4959:8:153","nodeType":"VariableDeclaration","scope":73721,"src":"4951:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73567,"name":"uint256","nodeType":"ElementaryTypeName","src":"4951:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73569,"nodeType":"VariableDeclarationStatement","src":"4951:16:153"},{"body":{"id":73690,"nodeType":"Block","src":"5021:1012:153","statements":[{"assignments":[73583],"declarations":[{"constant":false,"id":73583,"mutability":"mutable","name":"createProgramCall","nameLocation":"5062:17:153","nodeType":"VariableDeclaration","scope":73690,"src":"5035:44:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":73582,"nodeType":"UserDefinedTypeName","pathNode":{"id":73581,"name":"CreateProgramCall","nameLocations":["5035:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"5035:17:153"},"referencedDeclaration":73395,"src":"5035:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":73587,"initialValue":{"baseExpression":{"id":73584,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5082:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73586,"indexExpression":{"id":73585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5088:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5082:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"5035:55:153"},{"expression":{"id":73591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73588,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5104:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":73589,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5116:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5134:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5116:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5104:39:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73592,"nodeType":"ExpressionStatement","src":"5104:39:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73594,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5166:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5178:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:5:153","memberName":"value","nodeType":"MemberAccess","src":"5178:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5166:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73599,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5207:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73600,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5217:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5221:5:153","memberName":"value","nodeType":"MemberAccess","src":"5217:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73598,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"5189:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5189:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5158:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73604,"nodeType":"ExpressionStatement","src":"5158:70:153"},{"assignments":[73606],"declarations":[{"constant":false,"id":73606,"mutability":"mutable","name":"programId","nameLocation":"5251:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5243:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73605,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73618,"initialValue":{"arguments":[{"expression":{"id":73609,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5284:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5302:6:153","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"5284:24:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":73611,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5310:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5328:4:153","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":73388,"src":"5310:22:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":73615,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5342:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5334:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73613,"name":"address","nodeType":"ElementaryTypeName","src":"5334:7:153","typeDescriptions":{}}},"id":73616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73607,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"5263:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74916,"src":"5263:20:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":73617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5263:85:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5243:105:153"},{"expression":{"id":73623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73619,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"5362:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":73621,"indexExpression":{"id":73620,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5373:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5362:13:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73622,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5378:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5362:25:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73624,"nodeType":"ExpressionStatement","src":"5362:25:153"},{"assignments":[73627],"declarations":[{"constant":false,"id":73627,"mutability":"mutable","name":"mirror","nameLocation":"5409:6:153","nodeType":"VariableDeclaration","scope":73690,"src":"5401:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":73626,"nodeType":"UserDefinedTypeName","pathNode":{"id":73625,"name":"IMirror","nameLocations":["5401:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"5401:7:153"},"referencedDeclaration":74395,"src":"5401:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"internal"}],"id":73631,"initialValue":{"arguments":[{"id":73629,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5426:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73628,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"5418:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":73630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5418:18:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"5401:35:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":73635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73632,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5455:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5473:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5455:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":73634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5486:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5455:32:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73671,"nodeType":"IfStatement","src":"5451:390:153","trueBody":{"id":73670,"nodeType":"Block","src":"5489:352:153","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":73639,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5555:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5559:6:153","memberName":"sender","nodeType":"MemberAccess","src":"5555:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5575:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5567:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73641,"name":"address","nodeType":"ElementaryTypeName","src":"5567:7:153","typeDescriptions":{}}},"id":73644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73645,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5582:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5600:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5582:28:153","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":73637,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5536:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":73638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5542:12:153","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"5536:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":73647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:75:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73648,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73366,"src":"5613:18:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5613:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73636,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5507:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5507:144:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73651,"nodeType":"ExpressionStatement","src":"5507:144:153"},{"expression":{"arguments":[{"arguments":[{"id":73655,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5691:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73656,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5702:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5720:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5702:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73653,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5677:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":73654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5683:7:153","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"5677:13:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":73658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:54:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73659,"name":"ApproveFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73369,"src":"5733:13:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5733:15:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5669:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5669:80:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73662,"nodeType":"ExpressionStatement","src":"5669:80:153"},{"expression":{"arguments":[{"expression":{"id":73666,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5797:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5815:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5797:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73663,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5767:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5774:22:153","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":74355,"src":"5767:29:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":73668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:59:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73669,"nodeType":"ExpressionStatement","src":"5767:59:153"}]}},{"assignments":[73673],"declarations":[{"constant":false,"id":73673,"mutability":"mutable","name":"messageId","nameLocation":"5863:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5855:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5855:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":73683,"initialValue":{"arguments":[{"expression":{"id":73679,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5946:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5964:11:153","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":73390,"src":"5946:29:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5977:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":73674,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5891:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5898:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"5891:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73676,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5917:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5935:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5917:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5891:54:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:92:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5855:128:153"},{"expression":{"id":73688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73684,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"5997:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73686,"indexExpression":{"id":73685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"6008:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5997:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73687,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73673,"src":"6013:9:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5997:25:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73689,"nodeType":"ExpressionStatement","src":"5997:25:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73574,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"4998:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73575,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5002:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5008:6:153","memberName":"length","nodeType":"MemberAccess","src":"5002:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73691,"initializationExpression":{"assignments":[73571],"declarations":[{"constant":false,"id":73571,"mutability":"mutable","name":"i","nameLocation":"4991:1:153","nodeType":"VariableDeclaration","scope":73691,"src":"4983:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4983:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73573,"initialValue":{"hexValue":"30","id":73572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4995:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4983:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5016:3:153","subExpression":{"id":73578,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5018:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73580,"nodeType":"ExpressionStatement","src":"5016:3:153"},"nodeType":"ForStatement","src":"4978:1055:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73692,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6047:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73693,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6058:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6062:5:153","memberName":"value","nodeType":"MemberAccess","src":"6058:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6047:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73716,"nodeType":"IfStatement","src":"6043:163:153","trueBody":{"id":73715,"nodeType":"Block","src":"6069:137:153","statements":[{"assignments":[73697,null],"declarations":[{"constant":false,"id":73697,"mutability":"mutable","name":"success","nameLocation":"6089:7:153","nodeType":"VariableDeclaration","scope":73715,"src":"6084:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73696,"name":"bool","nodeType":"ElementaryTypeName","src":"6084:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73708,"initialValue":{"arguments":[{"hexValue":"","id":73706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6146:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73698,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6101:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6105:6:153","memberName":"sender","nodeType":"MemberAccess","src":"6101:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6112:4:153","memberName":"call","nodeType":"MemberAccess","src":"6101:15:153","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":73705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6124:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6128:5:153","memberName":"value","nodeType":"MemberAccess","src":"6124:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73703,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6136:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6124:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6101:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6101:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6083:66:153"},{"expression":{"arguments":[{"id":73710,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73697,"src":"6171:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73711,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"6180:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6163:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6163:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73714,"nodeType":"ExpressionStatement","src":"6163:32:153"}]}},{"expression":{"components":[{"id":73717,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"6224:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":73718,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"6236:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":73719,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6223:24:153","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bytes32[] memory)"}},"functionReturnParameters":73533,"id":73720,"nodeType":"Return","src":"6216:31:153"}]},"documentation":{"id":73518,"nodeType":"StructuredDocumentation","src":"4128:437:153","text":" @dev Creates batch of programs through Router contract and sends initial messages to them.\n @param router The Router contract address.\n @param calls Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\n @return programIds Array of created program IDs.\n @return messageIds Array of message IDs for the initial messages sent to each created program."},"functionSelector":"3cb1083b","implemented":true,"kind":"function","modifiers":[],"name":"createProgramBatch","nameLocation":"4579:18:153","parameters":{"id":73526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73521,"mutability":"mutable","name":"router","nameLocation":"4606:6:153","nodeType":"VariableDeclaration","scope":73722,"src":"4598:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"},"typeName":{"id":73520,"nodeType":"UserDefinedTypeName","pathNode":{"id":73519,"name":"IRouter","nameLocations":["4598:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"4598:7:153"},"referencedDeclaration":74990,"src":"4598:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":73525,"mutability":"mutable","name":"calls","nameLocation":"4643:5:153","nodeType":"VariableDeclaration","scope":73722,"src":"4614:34:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":73523,"nodeType":"UserDefinedTypeName","pathNode":{"id":73522,"name":"CreateProgramCall","nameLocations":["4614:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"4614:17:153"},"referencedDeclaration":73395,"src":"4614:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":73524,"nodeType":"ArrayTypeName","src":"4614:19:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"4597:52:153"},"returnParameters":{"id":73533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4700:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73527,"name":"address","nodeType":"ElementaryTypeName","src":"4700:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73528,"nodeType":"ArrayTypeName","src":"4700:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":73532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4718:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4718:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73531,"nodeType":"ArrayTypeName","src":"4718:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4699:36:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73727,"nodeType":"FunctionDefinition","src":"6644:29:153","nodes":[],"body":{"id":73726,"nodeType":"Block","src":"6671:2:153","nodes":[],"statements":[]},"documentation":{"id":73723,"nodeType":"StructuredDocumentation","src":"6260:379:153","text":" @dev Fallback function to receive Ether.\n This is necessary because `function _transferEther(address destination, uint128 value)` in `Mirror`\n will send `value` (ETH) to address of `BatchMulticall` smart contract\n (since in context of call `IMirror(messageCall.mirror).sendMessage(...)`: `msg.sender = address(BatchMulticall)`)"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73724,"nodeType":"ParameterList","parameters":[],"src":"6651:2:153"},"returnParameters":{"id":73725,"nodeType":"ParameterList","parameters":[],"src":"6671:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","documentation":{"id":73353,"nodeType":"StructuredDocumentation","src":"234:955:153","text":" @dev BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts.\n This is useful for reducing number of transactions when interacting with multiple Mirror contracts.\n Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network.\n Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster.\n This contract allows both batching of messages and batching of program creations.\n Furthermore, when creating programs, it offers full flow:\n - approval of WVARA ERC20 token for created program (Mirror)\n - top-up of executable balance for created program in WVARA ERC20 token (Mirror)\n - sending initial message to created program (Mirror)\n All of these actions are done in one transaction, which is much faster than doing them separately."},"fullyImplemented":true,"linearizedBaseContracts":[73728],"name":"BatchMulticall","nameLocation":"1199:14:153","scope":73729,"usedErrors":[73360,73363,73366,73369],"usedEvents":[73375]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":153} \ No newline at end of file +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createProgramBatch","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.CreateProgramCall[]","components":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initPayload","type":"bytes","internalType":"bytes"},{"name":"initValue","type":"uint128","internalType":"uint128"},{"name":"topUpValue","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"sendMessageBatch","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.MessageCall[]","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"SendMessageBatchResult","inputs":[{"name":"messageIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"ApproveFailed","inputs":[]},{"type":"error","name":"InsufficientValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RefundFailed","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]}],"bytecode":{"object":"0x608080604052346015576108b7908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b146102095763564abd5f0361000e5760203660031901126101bf5760043567ffffffffffffffff81116101bf57610060903690600401610652565b9061006a82610704565b915f905f5b8181106101d6575061008534833481111561078a565b5f5b81811061010a5784833481106100d6575b7fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100d183604051918291602083526020830190610683565b0390a1005b5f80806100e4819434610849565b335af16100ef610856565b50156100fb5781610098565b633c31275160e21b5f5260045ffd5b610115818386610895565b9081356001600160a01b038116908190036101bf57826020916101536001600160801b03610148604061016f9801610755565b1692848101906107e8565b926040518097819582946242129d60e81b84526004840161081b565b03925af180156101cb575f90610195575b6001925061018e82886107a8565b5201610087565b506020823d82116101c3575b816101ae602093836106b6565b810103126101bf5760019151610180565b5f80fd5b3d91506101a1565b6040513d5f823e3d90fd5b916102026001916001600160801b036101fb60406101f588888b610895565b01610755565b1690610769565b920161006f565b60403660031901126101bf576004356001600160a01b038116908190036101bf5760243567ffffffffffffffff81116101bf5761024a903690600401610652565b91610254836106ec565b9061026260405192836106b6565b83825261026e846106ec565b602083019390601f190136853761028485610704565b9260405163088f50cf60e41b8152602081600481875afa9081156101cb575f91610633575b5036839003609e190196955f936001600160a01b0392909216929190845b888110156105aa578060051b830135908a8212156101bf575f9184016102fc60608201986001600160801b036101fb8b610755565b9761030b348a3481111561078a565b60208a606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101cb575f9461057a575b5061035283886107a8565b6001600160a01b0390941693849052608082016001600160801b0361037682610755565b166103fc575b50906103a4936101536001600160801b03610398602095610755565b169260408101906107e8565b03925af180156101cb575f906103ca575b600192506103c3828b6107a8565b52016102c7565b506020823d82116103f4575b816103e3602093836106b6565b810103126101bf57600191516103b5565b3d91506103d6565b8860206001600160801b03606461041585979697610755565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101cb575f9161055c575b501561054d578860206001600160801b03604461046685610755565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101cb575f9161051f575b5015610510576104a490610755565b93803b156101bf576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101cb576001600160801b03610398610153926103a498602097610500575b509495505050509361037c565b5f61050a916106b6565b5f6104f3565b633e3f8f7360e01b5f5260045ffd5b610540915060203d8111610546575b61053881836106b6565b8101906107d0565b8f610495565b503d61052e565b631e4e7d0960e21b5f5260045ffd5b610574915060203d81116105465761053881836106b6565b8f61044a565b61059c91945060203d81116105a3575b61059481836106b6565b810190610736565b928d610347565b503d61058a565b5082878634811061060e575b5060405191604083019060408452518091526060830193905f5b8181106105ef5784806105eb88878382036020850152610683565b0390f35b82516001600160a01b03168652602095860195909201916001016105d0565b5f808061061c819434610849565b335af1610627610856565b50156100fb57836105b6565b61064c915060203d6020116105a35761059481836106b6565b876102a9565b9181601f840112156101bf5782359167ffffffffffffffff83116101bf576020808501948460051b0101116101bf57565b90602080835192838152019201905f5b8181106106a05750505090565b8251845260209384019390920191600101610693565b90601f8019910116810190811067ffffffffffffffff8211176106d857604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff81116106d85760051b60200190565b9061070e826106ec565b61071b60405191826106b6565b828152809261072c601f19916106ec565b0190602036910137565b908160209103126101bf57516001600160a01b03811681036101bf5790565b356001600160801b03811681036101bf5790565b9190820180921161077657565b634e487b7160e01b5f52601160045260245ffd5b15610793575050565b631c102d6360e21b5f5260045260245260445ffd5b80518210156107bc5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101bf575180151581036101bf5790565b903590601e19813603018212156101bf570180359067ffffffffffffffff82116101bf576020019181360383136101bf57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b9190820391821161077657565b3d15610890573d9067ffffffffffffffff82116106d85760405191610885601f8201601f1916602001846106b6565b82523d5f602084013e565b606090565b91908110156107bc5760051b81013590605e19813603018212156101bf57019056","sourceMap":"1190:5485:153:-:0;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;;;;;;;;;;;;;;:::i;:::-;3392:27;;;;:::i;:::-;3430:16;1190:5485;3462:13;1190:5485;3477:16;;;;;;3581:9;3561:70;3581:9;;;3569:21;;;3561:70;:::i;:::-;1190:5485;3662:16;;;;;;3581:9;;;3907:20;;3903:163;;3642:251;4081:34;1190:5485;;;;;;;;;;;;;;;:::i;:::-;4081:34;;;1190:5485;3903:163;1190:5485;3581:9;;3984:20;3581:9;;;3984:20;:::i;:::-;3961:10;:48;;;;:::i;:::-;;1190:5485;;;3903:163;;;1190:5485;;;;;;;;;3680:3;3734:8;;;;;:::i;:::-;1190:5485;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;3836:17;1190:5485;3836:17;3855:19;-1:-1:-1;;;;;3836:17:153;1190:5485;3789:93;3836:17;;;:::i;:::-;1190:5485;3855:19;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;;3789:93;;1190:5485;3789:93;;;:::i;:::-;;;;;;;;;1190:5485;3789:93;;;3680:3;1190:5485;3757:125;;;;;;:::i;:::-;1190:5485;;3647:13;;3789:93;;1190:5485;3789:93;;;;;;;;;1190:5485;3789:93;;;:::i;:::-;;;1190:5485;;;;;;;3789:93;;1190:5485;;;;3789:93;;;-1:-1:-1;3789:93:153;;;1190:5485;;;;;;;;;3495:3;3526:8;3514:26;1190:5485;3526:8;-1:-1:-1;;;;;3526:14:153;1190:5485;3526:8;;;;;:::i;:::-;:14;;:::i;:::-;1190:5485;3514:26;;:::i;:::-;3495:3;1190:5485;3462:13;;1190:5485;;;-1:-1:-1;;1190:5485:153;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1190:5485:153;;;;4847:27;;;:::i;:::-;1190:5485;;;;;;4919:20;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;;;1190:5485;4919:20;;;1190:5485;-1:-1:-1;1190:5485:153;;;;-1:-1:-1;;1190:5485:153;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;4951:16;4983:13;1190:5485;5016:3;4998:16;;;;;;1190:5485;;;;;;;;;;;;;;;;;5104:39;5116:27;;;;-1:-1:-1;;;;;5116:27:153;;;:::i;5104:39::-;5178:9;5158:70;5178:9;;;5166:21;;;5158:70;:::i;:::-;1190:5485;;5263:85;1190:5485;;;;;;;;;5263:85;;1190:5485;;;5263:85;;1190:5485;5310:22;;;1190:5485;;;;;5342:4;1190:5485;;;;5263:85;;;;;;;1190:5485;5263:85;;;5016:3;5362:25;;;;;:::i;:::-;-1:-1:-1;;;;;1190:5485:153;;;;;;;5455:28;;;-1:-1:-1;;;;;5455:28:153;;;:::i;:::-;1190:5485;5451:390;;5016:3;5917:27;;5891:92;5917:27;5946:29;-1:-1:-1;;;;;5917:27:153;1190:5485;5917:27;;:::i;:::-;1190:5485;5946:29;1190:5485;5946:29;;;;:::i;5891:92::-;;;;;;;;;1190:5485;5891:92;;;5016:3;1190:5485;5997:25;;;;;;:::i;:::-;1190:5485;;4983:13;;5891:92;;1190:5485;5891:92;;;;;;;;;1190:5485;5891:92;;;:::i;:::-;;;1190:5485;;;;;;;5891:92;;;;;-1:-1:-1;5891:92:153;;5451:390;5582:28;1190:5485;-1:-1:-1;;;;;5263:85:153;5582:28;;;;;;:::i;:::-;1190:5485;;;;;;;;;;;5536:75;;5555:10;1190:5485;5536:75;;1190:5485;5342:4;1190:5485;;;;;;;;;5536:75;;;;;;;1190:5485;5536:75;;;5451:390;1190:5485;;;;5702:28;1190:5485;-1:-1:-1;;;;;1190:5485:153;5702:28;;;:::i;:::-;1190:5485;;;;;;;;;;;5677:54;;;1190:5485;5677:54;;1190:5485;;;;;;5677:54;;;;;;;1190:5485;5677:54;;;5451:390;1190:5485;;;;5797:28;;;:::i;:::-;5767:59;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;5767:59;;1190:5485;;5767:59;;1190:5485;;5767:59;1190:5485;5767:59;;;;;;;;;;-1:-1:-1;;;;;5917:27:153;5946:29;5767:59;5891:92;5767:59;1190:5485;5767:59;;;5451:390;;;;;;;;;;;5767:59;1190:5485;5767:59;;;:::i;:::-;;;;1190:5485;;;;;;;;;5677:54;;;;1190:5485;5677:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1190:5485;;;;;;;;;5536:75;;;;1190:5485;5536:75;;;;;;;;;:::i;:::-;;;;5263:85;;;;;1190:5485;5263:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;4998:16;;;;;5178:9;6047:20;;6043:163;;4978:1055;1190:5485;;;;;;;;;;;;;;;5116:27;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;;;;;;;;;;6043:163;1190:5485;5178:9;;6124:20;5178:9;;;6124:20;:::i;:::-;6101:10;:48;;;;:::i;:::-;;1190:5485;;;6043:163;;;4919:20;;;;1190:5485;4919:20;1190:5485;4919:20;;;;;;;:::i;:::-;;;;1190:5485;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1190:5485:153;;;;;-1:-1:-1;1190:5485:153;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1190:5485:153;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1190:5485:153;;;;;:::i;:::-;;;;-1:-1:-1;1190:5485:153;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ApproveFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RefundFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"messageIds\",\"type\":\"bytes32[]\"}],\"name\":\"SendMessageBatchResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"initValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"topUpValue\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.CreateProgramCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"createProgramBatch\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.MessageCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"sendMessageBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts. This is useful for reducing number of transactions when interacting with multiple Mirror contracts. Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network. Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster. This contract allows both batching of messages and batching of program creations. Furthermore, when creating programs, it offers full flow: - approval of WVARA ERC20 token for created program (Mirror) - top-up of executable balance for created program in WVARA ERC20 token (Mirror) - sending initial message to created program (Mirror) All of these actions are done in one transaction, which is much faster than doing them separately.\",\"errors\":{\"ApproveFailed()\":[{\"details\":\"Approving WVARA token for created program (Mirror) failed.\"}],\"InsufficientValue(uint256,uint256)\":[{\"details\":\"There is not enough value sent with transaction to cover calls.\"}],\"RefundFailed()\":[{\"details\":\"Refunding excess value to sender failed.\"}],\"TransferFromFailed()\":[{\"details\":\"Transferring WVARA token from sender to this contract failed.\"}]},\"events\":{\"SendMessageBatchResult(bytes32[])\":{\"details\":\"Emitted when batch of messages is sent. It contains array of message ids that were sent.\"}},\"kind\":\"dev\",\"methods\":{\"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])\":{\"details\":\"Creates batch of programs through Router contract and sends initial messages to them.\",\"params\":{\"calls\":\"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\",\"router\":\"The Router contract address.\"},\"returns\":{\"_0\":\"programIds Array of created program IDs.\",\"_1\":\"messageIds Array of message IDs for the initial messages sent to each created program.\"}},\"sendMessageBatch((address,bytes,uint128)[])\":{\"details\":\"Sends batch of messages through Mirror contracts.\",\"params\":{\"calls\":\"Array of `MessageCall` structs representing calls to send messages through Mirror contracts.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BatchMulticall.sol\":\"BatchMulticall\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf\",\"dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009\",\"dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded\",\"dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ApproveFailed"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InsufficientValue"},{"inputs":[],"type":"error","name":"RefundFailed"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[{"internalType":"bytes32[]","name":"messageIds","type":"bytes32[]","indexed":false}],"type":"event","name":"SendMessageBatchResult","anonymous":false},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"struct BatchMulticall.CreateProgramCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initPayload","type":"bytes"},{"internalType":"uint128","name":"initValue","type":"uint128"},{"internalType":"uint128","name":"topUpValue","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"createProgramBatch","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct BatchMulticall.MessageCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"sendMessageBatch"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":{"details":"Creates batch of programs through Router contract and sends initial messages to them.","params":{"calls":"Array of `CreateProgramCall` structs representing calls to create programs through Router contract.","router":"The Router contract address."},"returns":{"_0":"programIds Array of created program IDs.","_1":"messageIds Array of message IDs for the initial messages sent to each created program."}},"sendMessageBatch((address,bytes,uint128)[])":{"details":"Sends batch of messages through Mirror contracts.","params":{"calls":"Array of `MessageCall` structs representing calls to send messages through Mirror contracts."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x541b0651932d90c6cd3716e3dd9e35818a0510ed6ad87d3f702d87675e590c74","urls":["bzz-raw://bea6fd0b5a5a2789b301344e2d69424e1d016d8b668735ea6ca8167b8e9aabbf","dweb:/ipfs/QmPB66s2aPfzZZF9BMubtpr86P8jfpWkDRiq2S9ZjnRdFB"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc","urls":["bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009","dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45","urls":["bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded","dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":73729,"exportedSymbols":{"BatchMulticall":[73728],"IMirror":[74395],"IRouter":[75008],"IWrappedVara":[75024]},"nodeType":"SourceUnit","src":"74:6602:153","nodes":[{"id":73346,"nodeType":"PragmaDirective","src":"74:24:153","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":73348,"nodeType":"ImportDirective","src":"100:40:153","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":73347,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73350,"nodeType":"ImportDirective","src":"141:40:153","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":75009,"symbolAliases":[{"foreign":{"id":73349,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75008,"src":"149:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73352,"nodeType":"ImportDirective","src":"182:50:153","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":73729,"sourceUnit":75025,"symbolAliases":[{"foreign":{"id":73351,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"190:12:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73728,"nodeType":"ContractDefinition","src":"1190:5485:153","nodes":[{"id":73360,"nodeType":"ErrorDefinition","src":"1312:58:153","nodes":[],"documentation":{"id":73354,"nodeType":"StructuredDocumentation","src":"1220:87:153","text":" @dev There is not enough value sent with transaction to cover calls."},"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"1318:17:153","parameters":{"id":73359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73356,"mutability":"mutable","name":"expected","nameLocation":"1344:8:153","nodeType":"VariableDeclaration","scope":73360,"src":"1336:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73355,"name":"uint256","nodeType":"ElementaryTypeName","src":"1336:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73358,"mutability":"mutable","name":"actual","nameLocation":"1362:6:153","nodeType":"VariableDeclaration","scope":73360,"src":"1354:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1354:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1335:34:153"}},{"id":73363,"nodeType":"ErrorDefinition","src":"1445:21:153","nodes":[],"documentation":{"id":73361,"nodeType":"StructuredDocumentation","src":"1376:64:153","text":" @dev Refunding excess value to sender failed."},"errorSelector":"f0c49d44","name":"RefundFailed","nameLocation":"1451:12:153","parameters":{"id":73362,"nodeType":"ParameterList","parameters":[],"src":"1463:2:153"}},{"id":73366,"nodeType":"ErrorDefinition","src":"1562:27:153","nodes":[],"documentation":{"id":73364,"nodeType":"StructuredDocumentation","src":"1472:85:153","text":" @dev Transferring WVARA token from sender to this contract failed."},"errorSelector":"7939f424","name":"TransferFromFailed","nameLocation":"1568:18:153","parameters":{"id":73365,"nodeType":"ParameterList","parameters":[],"src":"1586:2:153"}},{"id":73369,"nodeType":"ErrorDefinition","src":"1682:22:153","nodes":[],"documentation":{"id":73367,"nodeType":"StructuredDocumentation","src":"1595:82:153","text":" @dev Approving WVARA token for created program (Mirror) failed."},"errorSelector":"3e3f8f73","name":"ApproveFailed","nameLocation":"1688:13:153","parameters":{"id":73368,"nodeType":"ParameterList","parameters":[],"src":"1701:2:153"}},{"id":73375,"nodeType":"EventDefinition","src":"1827:51:153","nodes":[],"anonymous":false,"documentation":{"id":73370,"nodeType":"StructuredDocumentation","src":"1710:112:153","text":" @dev Emitted when batch of messages is sent. It contains array of message ids that were sent."},"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"1833:22:153","parameters":{"id":73374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73373,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"1866:10:153","nodeType":"VariableDeclaration","scope":73375,"src":"1856:20:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1856:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73372,"nodeType":"ArrayTypeName","src":"1856:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1855:22:153"}},{"id":73383,"nodeType":"StructDefinition","src":"2150:96:153","nodes":[],"canonicalName":"BatchMulticall.MessageCall","documentation":{"id":73376,"nodeType":"StructuredDocumentation","src":"1884:261:153","text":" @dev Represents call to send message through Mirror contract.\n It will be sent through `IMirror(mirror).sendMessage{value: value}(payload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73378,"mutability":"mutable","name":"mirror","nameLocation":"2187:6:153","nodeType":"VariableDeclaration","scope":73383,"src":"2179:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73377,"name":"address","nodeType":"ElementaryTypeName","src":"2179:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73380,"mutability":"mutable","name":"payload","nameLocation":"2209:7:153","nodeType":"VariableDeclaration","scope":73383,"src":"2203:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73379,"name":"bytes","nodeType":"ElementaryTypeName","src":"2203:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73382,"mutability":"mutable","name":"value","nameLocation":"2234:5:153","nodeType":"VariableDeclaration","scope":73383,"src":"2226:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73381,"name":"uint128","nodeType":"ElementaryTypeName","src":"2226:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"2157:11:153","scope":73728,"visibility":"public"},{"id":73395,"nodeType":"StructDefinition","src":"2922:160:153","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","documentation":{"id":73384,"nodeType":"StructuredDocumentation","src":"2252:665:153","text":" @dev Represents call to create Mirror through Router contract.\n It will be sent through `IRouter(router).createProgram(codeId, salt, address(this))`,\n where `overrideInitializer` is always `address(this)` since we want to send initial message from this contract.\n Then, if `topUpValue` is greater than 0, it will approve WVARA token and top up executable balance for created Mirror.\n Finally, it will send initial message to created Mirror through `IMirror(programId).sendMessage{value: initValue}(initPayload, false)`.\n (`callReply` is always `false` since we don't want to call reply hook)."},"members":[{"constant":false,"id":73386,"mutability":"mutable","name":"codeId","nameLocation":"2965:6:153","nodeType":"VariableDeclaration","scope":73395,"src":"2957:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2957:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73388,"mutability":"mutable","name":"salt","nameLocation":"2989:4:153","nodeType":"VariableDeclaration","scope":73395,"src":"2981:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2981:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":73390,"mutability":"mutable","name":"initPayload","nameLocation":"3009:11:153","nodeType":"VariableDeclaration","scope":73395,"src":"3003:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":73389,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73392,"mutability":"mutable","name":"initValue","nameLocation":"3038:9:153","nodeType":"VariableDeclaration","scope":73395,"src":"3030:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73391,"name":"uint128","nodeType":"ElementaryTypeName","src":"3030:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":73394,"mutability":"mutable","name":"topUpValue","nameLocation":"3065:10:153","nodeType":"VariableDeclaration","scope":73395,"src":"3057:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":73393,"name":"uint128","nodeType":"ElementaryTypeName","src":"3057:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"2929:17:153","scope":73728,"visibility":"public"},{"id":73517,"nodeType":"FunctionDefinition","src":"3279:843:153","nodes":[],"body":{"id":73516,"nodeType":"Block","src":"3352:770:153","nodes":[],"statements":[{"assignments":[73407],"declarations":[{"constant":false,"id":73407,"mutability":"mutable","name":"messageIds","nameLocation":"3379:10:153","nodeType":"VariableDeclaration","scope":73516,"src":"3362:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3362:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73406,"nodeType":"ArrayTypeName","src":"3362:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73414,"initialValue":{"arguments":[{"expression":{"id":73411,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3406:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3412:6:153","memberName":"length","nodeType":"MemberAccess","src":"3406:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3392:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":73408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3396:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73409,"nodeType":"ArrayTypeName","src":"3396:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3362:57:153"},{"assignments":[73416],"declarations":[{"constant":false,"id":73416,"mutability":"mutable","name":"consumed","nameLocation":"3438:8:153","nodeType":"VariableDeclaration","scope":73516,"src":"3430:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73415,"name":"uint256","nodeType":"ElementaryTypeName","src":"3430:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73417,"nodeType":"VariableDeclarationStatement","src":"3430:16:153"},{"body":{"id":73436,"nodeType":"Block","src":"3500:51:153","statements":[{"expression":{"id":73434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73429,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3514:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":73430,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3526:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73432,"indexExpression":{"id":73431,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3532:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3526:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3535:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3526:14:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3514:26:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73435,"nodeType":"ExpressionStatement","src":"3514:26:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73422,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3477:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73423,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3481:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3487:6:153","memberName":"length","nodeType":"MemberAccess","src":"3481:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3477:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73437,"initializationExpression":{"assignments":[73419],"declarations":[{"constant":false,"id":73419,"mutability":"mutable","name":"i","nameLocation":"3470:1:153","nodeType":"VariableDeclaration","scope":73437,"src":"3462:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73418,"name":"uint256","nodeType":"ElementaryTypeName","src":"3462:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73421,"initialValue":{"hexValue":"30","id":73420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3474:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3462:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3495:3:153","subExpression":{"id":73426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73419,"src":"3497:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73428,"nodeType":"ExpressionStatement","src":"3495:3:153"},"nodeType":"ForStatement","src":"3457:94:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73439,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3569:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73440,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3581:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3585:5:153","memberName":"value","nodeType":"MemberAccess","src":"3581:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3569:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73444,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3610:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73445,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3620:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3624:5:153","memberName":"value","nodeType":"MemberAccess","src":"3620:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73443,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"3592:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73438,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3561:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3561:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73449,"nodeType":"ExpressionStatement","src":"3561:70:153"},{"body":{"id":73485,"nodeType":"Block","src":"3685:208:153","statements":[{"assignments":[73463],"declarations":[{"constant":false,"id":73463,"mutability":"mutable","name":"messageCall","nameLocation":"3720:11:153","nodeType":"VariableDeclaration","scope":73485,"src":"3699:32:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":73462,"nodeType":"UserDefinedTypeName","pathNode":{"id":73461,"name":"MessageCall","nameLocations":["3699:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3699:11:153"},"referencedDeclaration":73383,"src":"3699:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":73467,"initialValue":{"baseExpression":{"id":73464,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3734:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73466,"indexExpression":{"id":73465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3740:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3734:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"3699:43:153"},{"expression":{"id":73483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73468,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"3757:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73470,"indexExpression":{"id":73469,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3768:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3757:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73479,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3855:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3867:7:153","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":73380,"src":"3855:19:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3876:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"expression":{"id":73472,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3797:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3809:6:153","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":73378,"src":"3797:18:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73471,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"3789:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":73474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3817:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"3789:39:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73476,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73463,"src":"3836:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":73477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3848:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":73382,"src":"3836:17:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"3789:65:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:93:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3757:125:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73484,"nodeType":"ExpressionStatement","src":"3757:125:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73454,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3662:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73455,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73400,"src":"3666:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":73456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3672:6:153","memberName":"length","nodeType":"MemberAccess","src":"3666:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3662:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73486,"initializationExpression":{"assignments":[73451],"declarations":[{"constant":false,"id":73451,"mutability":"mutable","name":"i","nameLocation":"3655:1:153","nodeType":"VariableDeclaration","scope":73486,"src":"3647:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3647:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73453,"initialValue":{"hexValue":"30","id":73452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3659:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3647:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"3680:3:153","subExpression":{"id":73458,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73451,"src":"3682:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73460,"nodeType":"ExpressionStatement","src":"3680:3:153"},"nodeType":"ForStatement","src":"3642:251:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73487,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3907:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3918:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3922:5:153","memberName":"value","nodeType":"MemberAccess","src":"3918:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3907:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73511,"nodeType":"IfStatement","src":"3903:163:153","trueBody":{"id":73510,"nodeType":"Block","src":"3929:137:153","statements":[{"assignments":[73492,null],"declarations":[{"constant":false,"id":73492,"mutability":"mutable","name":"success","nameLocation":"3949:7:153","nodeType":"VariableDeclaration","scope":73510,"src":"3944:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73491,"name":"bool","nodeType":"ElementaryTypeName","src":"3944:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73503,"initialValue":{"arguments":[{"hexValue":"","id":73501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4006:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73493,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3961:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3965:6:153","memberName":"sender","nodeType":"MemberAccess","src":"3961:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3972:4:153","memberName":"call","nodeType":"MemberAccess","src":"3961:15:153","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":73500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73496,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3984:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3988:5:153","memberName":"value","nodeType":"MemberAccess","src":"3984:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73498,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73416,"src":"3996:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3984:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3961:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3943:66:153"},{"expression":{"arguments":[{"id":73505,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73492,"src":"4031:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73506,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"4040:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73504,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4023:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4023:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73509,"nodeType":"ExpressionStatement","src":"4023:32:153"}]}},{"eventCall":{"arguments":[{"id":73513,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73407,"src":"4104:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":73512,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73375,"src":"4081:22:153","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":73514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4081:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73515,"nodeType":"EmitStatement","src":"4076:39:153"}]},"documentation":{"id":73396,"nodeType":"StructuredDocumentation","src":"3088:186:153","text":" @dev Sends batch of messages through Mirror contracts.\n @param calls Array of `MessageCall` structs representing calls to send messages through Mirror contracts."},"functionSelector":"564abd5f","implemented":true,"kind":"function","modifiers":[],"name":"sendMessageBatch","nameLocation":"3288:16:153","parameters":{"id":73401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73400,"mutability":"mutable","name":"calls","nameLocation":"3328:5:153","nodeType":"VariableDeclaration","scope":73517,"src":"3305:28:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":73398,"nodeType":"UserDefinedTypeName","pathNode":{"id":73397,"name":"MessageCall","nameLocations":["3305:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":73383,"src":"3305:11:153"},"referencedDeclaration":73383,"src":"3305:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$73383_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":73399,"nodeType":"ArrayTypeName","src":"3305:13:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$73383_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"3304:30:153"},"returnParameters":{"id":73402,"nodeType":"ParameterList","parameters":[],"src":"3352:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73722,"nodeType":"FunctionDefinition","src":"4570:1684:153","nodes":[],"body":{"id":73721,"nodeType":"Block","src":"4740:1514:153","nodes":[],"statements":[{"assignments":[73538],"declarations":[{"constant":false,"id":73538,"mutability":"mutable","name":"programIds","nameLocation":"4767:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4750:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"4750:7:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73537,"nodeType":"ArrayTypeName","src":"4750:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":73545,"initialValue":{"arguments":[{"expression":{"id":73542,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4794:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4800:6:153","memberName":"length","nodeType":"MemberAccess","src":"4794:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4780:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":73539,"name":"address","nodeType":"ElementaryTypeName","src":"4784:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73540,"nodeType":"ArrayTypeName","src":"4784:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":73544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4780:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4750:57:153"},{"assignments":[73550],"declarations":[{"constant":false,"id":73550,"mutability":"mutable","name":"messageIds","nameLocation":"4834:10:153","nodeType":"VariableDeclaration","scope":73721,"src":"4817:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4817:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73549,"nodeType":"ArrayTypeName","src":"4817:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":73557,"initialValue":{"arguments":[{"expression":{"id":73554,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"4861:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4867:6:153","memberName":"length","nodeType":"MemberAccess","src":"4861:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4847:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":73551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4851:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73552,"nodeType":"ArrayTypeName","src":"4851:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":73556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4817:57:153"},{"assignments":[73560],"declarations":[{"constant":false,"id":73560,"mutability":"mutable","name":"wvara","nameLocation":"4898:5:153","nodeType":"VariableDeclaration","scope":73721,"src":"4885:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"},"typeName":{"id":73559,"nodeType":"UserDefinedTypeName","pathNode":{"id":73558,"name":"IWrappedVara","nameLocations":["4885:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":75024,"src":"4885:12:153"},"referencedDeclaration":75024,"src":"4885:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":73566,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73562,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"4919:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75008","typeString":"contract IRouter"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4926:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74692,"src":"4919:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":73564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4919:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73561,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"4906:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":73565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4906:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"4885:55:153"},{"assignments":[73568],"declarations":[{"constant":false,"id":73568,"mutability":"mutable","name":"consumed","nameLocation":"4959:8:153","nodeType":"VariableDeclaration","scope":73721,"src":"4951:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73567,"name":"uint256","nodeType":"ElementaryTypeName","src":"4951:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73569,"nodeType":"VariableDeclarationStatement","src":"4951:16:153"},{"body":{"id":73690,"nodeType":"Block","src":"5021:1012:153","statements":[{"assignments":[73583],"declarations":[{"constant":false,"id":73583,"mutability":"mutable","name":"createProgramCall","nameLocation":"5062:17:153","nodeType":"VariableDeclaration","scope":73690,"src":"5035:44:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":73582,"nodeType":"UserDefinedTypeName","pathNode":{"id":73581,"name":"CreateProgramCall","nameLocations":["5035:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"5035:17:153"},"referencedDeclaration":73395,"src":"5035:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":73587,"initialValue":{"baseExpression":{"id":73584,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5082:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73586,"indexExpression":{"id":73585,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5088:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5082:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"5035:55:153"},{"expression":{"id":73591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73588,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5104:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":73589,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5116:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5134:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5116:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5104:39:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73592,"nodeType":"ExpressionStatement","src":"5104:39:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73594,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5166:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":73595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5178:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5182:5:153","memberName":"value","nodeType":"MemberAccess","src":"5178:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5166:21:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":73599,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5207:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":73600,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5217:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5221:5:153","memberName":"value","nodeType":"MemberAccess","src":"5217:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73598,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73360,"src":"5189:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":73602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5189:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73593,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5158:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:70:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73604,"nodeType":"ExpressionStatement","src":"5158:70:153"},{"assignments":[73606],"declarations":[{"constant":false,"id":73606,"mutability":"mutable","name":"programId","nameLocation":"5251:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5243:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73605,"name":"address","nodeType":"ElementaryTypeName","src":"5243:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73618,"initialValue":{"arguments":[{"expression":{"id":73609,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5284:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5302:6:153","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":73386,"src":"5284:24:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":73611,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5310:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5328:4:153","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":73388,"src":"5310:22:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":73615,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5342:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5334:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73613,"name":"address","nodeType":"ElementaryTypeName","src":"5334:7:153","typeDescriptions":{}}},"id":73616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73607,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73521,"src":"5263:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75008","typeString":"contract IRouter"}},"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5270:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74934,"src":"5263:20:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":73617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5263:85:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5243:105:153"},{"expression":{"id":73623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73619,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"5362:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":73621,"indexExpression":{"id":73620,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5373:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5362:13:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73622,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5378:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5362:25:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73624,"nodeType":"ExpressionStatement","src":"5362:25:153"},{"assignments":[73627],"declarations":[{"constant":false,"id":73627,"mutability":"mutable","name":"mirror","nameLocation":"5409:6:153","nodeType":"VariableDeclaration","scope":73690,"src":"5401:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":73626,"nodeType":"UserDefinedTypeName","pathNode":{"id":73625,"name":"IMirror","nameLocations":["5401:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"5401:7:153"},"referencedDeclaration":74395,"src":"5401:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"internal"}],"id":73631,"initialValue":{"arguments":[{"id":73629,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5426:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73628,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"5418:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":73630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5418:18:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"5401:35:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":73635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73632,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5455:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5473:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5455:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":73634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5486:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5455:32:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73671,"nodeType":"IfStatement","src":"5451:390:153","trueBody":{"id":73670,"nodeType":"Block","src":"5489:352:153","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":73639,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5555:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5559:6:153","memberName":"sender","nodeType":"MemberAccess","src":"5555:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73643,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5575:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73728","typeString":"contract BatchMulticall"}],"id":73642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5567:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73641,"name":"address","nodeType":"ElementaryTypeName","src":"5567:7:153","typeDescriptions":{}}},"id":73644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5567:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73645,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5582:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5600:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5582:28:153","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":73637,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5536:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":73638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5542:12:153","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"5536:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":73647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5536:75:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73648,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73366,"src":"5613:18:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5613:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73636,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5507:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5507:144:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73651,"nodeType":"ExpressionStatement","src":"5507:144:153"},{"expression":{"arguments":[{"arguments":[{"id":73655,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73606,"src":"5691:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":73656,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5702:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5720:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5702:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73653,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"5677:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":73654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5683:7:153","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"5677:13:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":73658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:54:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73659,"name":"ApproveFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73369,"src":"5733:13:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5733:15:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73652,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5669:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5669:80:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73662,"nodeType":"ExpressionStatement","src":"5669:80:153"},{"expression":{"arguments":[{"expression":{"id":73666,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5797:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5815:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":73394,"src":"5797:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":73663,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5767:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5774:22:153","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":74355,"src":"5767:29:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":73668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:59:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73669,"nodeType":"ExpressionStatement","src":"5767:59:153"}]}},{"assignments":[73673],"declarations":[{"constant":false,"id":73673,"mutability":"mutable","name":"messageId","nameLocation":"5863:9:153","nodeType":"VariableDeclaration","scope":73690,"src":"5855:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":73672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5855:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":73683,"initialValue":{"arguments":[{"expression":{"id":73679,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5946:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5964:11:153","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":73390,"src":"5946:29:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":73681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5977:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":73674,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73627,"src":"5891:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5898:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"5891:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":73676,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"5917:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5935:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":73392,"src":"5917:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5891:54:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":73682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:92:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5855:128:153"},{"expression":{"id":73688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":73684,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"5997:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":73686,"indexExpression":{"id":73685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"6008:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5997:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73687,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73673,"src":"6013:9:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5997:25:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73689,"nodeType":"ExpressionStatement","src":"5997:25:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73574,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"4998:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73575,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73525,"src":"5002:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":73576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5008:6:153","memberName":"length","nodeType":"MemberAccess","src":"5002:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73691,"initializationExpression":{"assignments":[73571],"declarations":[{"constant":false,"id":73571,"mutability":"mutable","name":"i","nameLocation":"4991:1:153","nodeType":"VariableDeclaration","scope":73691,"src":"4983:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4983:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73573,"initialValue":{"hexValue":"30","id":73572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4995:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4983:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":73579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"5016:3:153","subExpression":{"id":73578,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73571,"src":"5018:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73580,"nodeType":"ExpressionStatement","src":"5016:3:153"},"nodeType":"ForStatement","src":"4978:1055:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73692,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6047:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":73693,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6058:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6062:5:153","memberName":"value","nodeType":"MemberAccess","src":"6058:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6047:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73716,"nodeType":"IfStatement","src":"6043:163:153","trueBody":{"id":73715,"nodeType":"Block","src":"6069:137:153","statements":[{"assignments":[73697,null],"declarations":[{"constant":false,"id":73697,"mutability":"mutable","name":"success","nameLocation":"6089:7:153","nodeType":"VariableDeclaration","scope":73715,"src":"6084:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73696,"name":"bool","nodeType":"ElementaryTypeName","src":"6084:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73708,"initialValue":{"arguments":[{"hexValue":"","id":73706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6146:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73698,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6101:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6105:6:153","memberName":"sender","nodeType":"MemberAccess","src":"6101:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6112:4:153","memberName":"call","nodeType":"MemberAccess","src":"6101:15:153","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":73705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6124:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6128:5:153","memberName":"value","nodeType":"MemberAccess","src":"6124:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73703,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"6136:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6124:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6101:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6101:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6083:66:153"},{"expression":{"arguments":[{"id":73710,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73697,"src":"6171:7:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":73711,"name":"RefundFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73363,"src":"6180:12:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":73712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6180:14:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":73709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6163:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":73713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6163:32:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73714,"nodeType":"ExpressionStatement","src":"6163:32:153"}]}},{"expression":{"components":[{"id":73717,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73538,"src":"6224:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":73718,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"6236:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":73719,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6223:24:153","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bytes32[] memory)"}},"functionReturnParameters":73533,"id":73720,"nodeType":"Return","src":"6216:31:153"}]},"documentation":{"id":73518,"nodeType":"StructuredDocumentation","src":"4128:437:153","text":" @dev Creates batch of programs through Router contract and sends initial messages to them.\n @param router The Router contract address.\n @param calls Array of `CreateProgramCall` structs representing calls to create programs through Router contract.\n @return programIds Array of created program IDs.\n @return messageIds Array of message IDs for the initial messages sent to each created program."},"functionSelector":"3cb1083b","implemented":true,"kind":"function","modifiers":[],"name":"createProgramBatch","nameLocation":"4579:18:153","parameters":{"id":73526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73521,"mutability":"mutable","name":"router","nameLocation":"4606:6:153","nodeType":"VariableDeclaration","scope":73722,"src":"4598:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75008","typeString":"contract IRouter"},"typeName":{"id":73520,"nodeType":"UserDefinedTypeName","pathNode":{"id":73519,"name":"IRouter","nameLocations":["4598:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":75008,"src":"4598:7:153"},"referencedDeclaration":75008,"src":"4598:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75008","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":73525,"mutability":"mutable","name":"calls","nameLocation":"4643:5:153","nodeType":"VariableDeclaration","scope":73722,"src":"4614:34:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":73523,"nodeType":"UserDefinedTypeName","pathNode":{"id":73522,"name":"CreateProgramCall","nameLocations":["4614:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":73395,"src":"4614:17:153"},"referencedDeclaration":73395,"src":"4614:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$73395_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":73524,"nodeType":"ArrayTypeName","src":"4614:19:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$73395_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"4597:52:153"},"returnParameters":{"id":73533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4700:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":73527,"name":"address","nodeType":"ElementaryTypeName","src":"4700:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73528,"nodeType":"ArrayTypeName","src":"4700:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":73532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73722,"src":"4718:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":73530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4718:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":73531,"nodeType":"ArrayTypeName","src":"4718:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4699:36:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73727,"nodeType":"FunctionDefinition","src":"6644:29:153","nodes":[],"body":{"id":73726,"nodeType":"Block","src":"6671:2:153","nodes":[],"statements":[]},"documentation":{"id":73723,"nodeType":"StructuredDocumentation","src":"6260:379:153","text":" @dev Fallback function to receive Ether.\n This is necessary because `function _transferEther(address destination, uint128 value)` in `Mirror`\n will send `value` (ETH) to address of `BatchMulticall` smart contract\n (since in context of call `IMirror(messageCall.mirror).sendMessage(...)`: `msg.sender = address(BatchMulticall)`)"},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73724,"nodeType":"ParameterList","parameters":[],"src":"6651:2:153"},"returnParameters":{"id":73725,"nodeType":"ParameterList","parameters":[],"src":"6671:0:153"},"scope":73728,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","documentation":{"id":73353,"nodeType":"StructuredDocumentation","src":"234:955:153","text":" @dev BatchMulticall smart contract is responsible for batching multiple calls to Mirror smart contracts.\n This is useful for reducing number of transactions when interacting with multiple Mirror contracts.\n Mostly used in crate [`ethexe-node-loader`](ethexe/node-loader), which is responsible for testing our network.\n Since we use `anvil` as Ethereum node, this contract allows us to avoid waiting for block time and load node much faster.\n This contract allows both batching of messages and batching of program creations.\n Furthermore, when creating programs, it offers full flow:\n - approval of WVARA ERC20 token for created program (Mirror)\n - top-up of executable balance for created program in WVARA ERC20 token (Mirror)\n - sending initial message to created program (Mirror)\n All of these actions are done in one transaction, which is much faster than doing them separately."},"fullyImplemented":true,"linearizedBaseContracts":[73728],"name":"BatchMulticall","nameLocation":"1199:14:153","scope":73729,"usedErrors":[73360,73363,73366,73369],"usedEvents":[73375]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":153} \ No newline at end of file diff --git a/ethexe/ethereum/abi/DemoCaller.json b/ethexe/ethereum/abi/DemoCaller.json index 30689a6ebf5..0f83c38628f 100644 --- a/ethexe/ethereum/abi/DemoCaller.json +++ b/ethexe/ethereum/abi/DemoCaller.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_varaEthProgram","type":"address","internalType":"contract IMirror"}],"stateMutability":"nonpayable"},{"type":"function","name":"VARA_ETH_PROGRAM","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMirror"}],"stateMutability":"view"},{"type":"function","name":"methodName","inputs":[{"name":"isPanic","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"onErrorReply","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onErrorReplyCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOnMethodNameCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOn_methodName","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ErrorReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"replyCode","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"MethodNameReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"UnauthorizedCaller","inputs":[]}],"bytecode":{"object":"0x60a034607357601f61040d38819003918201601f19168301916001600160401b03831184841017607757808492602094604052833981010312607357516001600160a01b0381168103607357608052604051610381908161008c823960805181818160700152818161019b01526103420152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:1305:173;;;;;;574:34;;198:1305;;;;;;;;574:34;198:1305;;;;;;;;;;;;;;;;;-1:-1:-1;198:1305:173;;;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;242:41;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;621:79;;:::i;:::-;198:1305;;;;;;;;;1212:28;198:1305;;;;;;;1212:28;198:1305;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;977:25;;;198:1305;;;;;;977:25;;;;;;:::i;:::-;198:1305;;;;;;;;;;948:61;;198:1305;;948:61;;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:61;;198:1305;;;;;;;948:16;198:1305;948:61;;;;;;198:1305;948:61;;;198:1305;;;;;;;;;948:61;;198:1305;948:61;;198:1305;948:61;;;;;;198:1305;948:61;;;:::i;:::-;;;198:1305;;;;;;;948:61;;;;;-1:-1:-1;948:61:173;;;198:1305;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1451:43;621:79;198:1305;621:79;198:1305;621:79;;;:::i;:::-;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;1451:43;;;;198:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173;706:158;787:16;-1:-1:-1;;;;;198:1305:173;765:10;:39;761:97;;706:158::o;761:97::-;827:20;;;;;;;","linkReferences":{},"immutableReferences":{"86346":[{"start":112,"length":32},{"start":411,"length":32},{"start":834,"length":32}]}},"methodIdentifiers":{"VARA_ETH_PROGRAM()":"dab506b2","methodName(bool)":"96b3d5a9","onErrorReply(bytes32,bytes,bytes4)":"4a646c7f","onErrorReplyCalled()":"8ed2570c","replyOnMethodNameCalled()":"d24012f8","replyOn_methodName(bytes32)":"b52ab555"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"_varaEthProgram\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UnauthorizedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ErrorReplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MethodNameReplied\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VARA_ETH_PROGRAM\",\"outputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isPanic\",\"type\":\"bool\"}],\"name\":\"methodName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"onErrorReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onErrorReplyCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"replyOnMethodNameCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"replyOn_methodName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onErrorReply(bytes32,bytes,bytes4)\":{\"details\":\"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.\",\"params\":{\"messageId\":\"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.\",\"payload\":\"Payload of reply (e.g., error message in case of `UserspacePanic`).\",\"replyCode\":\"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`).\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"replyOn_methodName(bytes32)\":{\"notice\":\"forge-lint: disable-next-line(mixed-case-function)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/DemoCaller.sol\":\"DemoCaller\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"test/DemoCaller.sol\":{\"keccak256\":\"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186\",\"dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz\"]},\"test/IDemoCallbacks.sol\":{\"keccak256\":\"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d\",\"dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IMirror","name":"_varaEthProgram","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"UnauthorizedCaller"},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":false}],"type":"event","name":"ErrorReplied","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false}],"type":"event","name":"MethodNameReplied","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"VARA_ETH_PROGRAM","outputs":[{"internalType":"contract IMirror","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"isPanic","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"methodName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"payable","type":"function","name":"onErrorReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"onErrorReplyCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"replyOnMethodNameCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"replyOn_methodName"}],"devdoc":{"kind":"dev","methods":{"onErrorReply(bytes32,bytes,bytes4)":{"details":"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.","params":{"messageId":"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.","payload":"Payload of reply (e.g., error message in case of `UserspacePanic`).","replyCode":"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`)."}}},"version":1},"userdoc":{"kind":"user","methods":{"replyOn_methodName(bytes32)":{"notice":"forge-lint: disable-next-line(mixed-case-function)"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"test/DemoCaller.sol":"DemoCaller"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/DemoCaller.sol":{"keccak256":"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97","urls":["bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186","dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/IDemoCallbacks.sol":{"keccak256":"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46","urls":["bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d","dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":86348,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":86350,"contract":"test/DemoCaller.sol:DemoCaller","label":"onErrorReplyCalled","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"ast":{"absolutePath":"test/DemoCaller.sol","id":86456,"exportedSymbols":{"DemoCaller":[86455],"IDemoCallbacks":[86468],"IMirror":[74395]},"nodeType":"SourceUnit","src":"74:1430:173","nodes":[{"id":86337,"nodeType":"PragmaDirective","src":"74:24:173","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":86339,"nodeType":"ImportDirective","src":"100:40:173","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":86456,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":86338,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86341,"nodeType":"ImportDirective","src":"141:55:173","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":86456,"sourceUnit":86469,"symbolAliases":[{"foreign":{"id":86340,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86468,"src":"149:14:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86455,"nodeType":"ContractDefinition","src":"198:1305:173","nodes":[{"id":86346,"nodeType":"VariableDeclaration","src":"242:41:173","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"267:16:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86345,"nodeType":"UserDefinedTypeName","pathNode":{"id":86344,"name":"IMirror","nameLocations":["242:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"242:7:173"},"referencedDeclaration":74395,"src":"242:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"public"},{"id":86348,"nodeType":"VariableDeclaration","src":"290:35:173","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"302:23:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86347,"name":"bool","nodeType":"ElementaryTypeName","src":"290:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86350,"nodeType":"VariableDeclaration","src":"331:30:173","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"343:18:173","scope":86455,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86349,"name":"bool","nodeType":"ElementaryTypeName","src":"331:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86354,"nodeType":"EventDefinition","src":"368:43:173","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"374:17:173","parameters":{"id":86353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86352,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"400:9:173","nodeType":"VariableDeclaration","scope":86354,"src":"392:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"391:19:173"}},{"id":86362,"nodeType":"EventDefinition","src":"417:71:173","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"423:12:173","parameters":{"id":86361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86356,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"444:9:173","nodeType":"VariableDeclaration","scope":86362,"src":"436:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86358,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"461:7:173","nodeType":"VariableDeclaration","scope":86362,"src":"455:13:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86357,"name":"bytes","nodeType":"ElementaryTypeName","src":"455:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86360,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"477:9:173","nodeType":"VariableDeclaration","scope":86362,"src":"470:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86359,"name":"bytes4","nodeType":"ElementaryTypeName","src":"470:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"435:52:173"}},{"id":86364,"nodeType":"ErrorDefinition","src":"494:27:173","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"500:18:173","parameters":{"id":86363,"nodeType":"ParameterList","parameters":[],"src":"518:2:173"}},{"id":86375,"nodeType":"FunctionDefinition","src":"527:88:173","nodes":[],"body":{"id":86374,"nodeType":"Block","src":"564:51:173","nodes":[],"statements":[{"expression":{"id":86372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86370,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"574:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86371,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86367,"src":"593:15:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"src":"574:34:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86373,"nodeType":"ExpressionStatement","src":"574:34:173"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86367,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"547:15:173","nodeType":"VariableDeclaration","scope":86375,"src":"539:23:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86366,"nodeType":"UserDefinedTypeName","pathNode":{"id":86365,"name":"IMirror","nameLocations":["539:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"539:7:173"},"referencedDeclaration":74395,"src":"539:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"538:25:173"},"returnParameters":{"id":86369,"nodeType":"ParameterList","parameters":[],"src":"564:0:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86382,"nodeType":"ModifierDefinition","src":"621:79:173","nodes":[],"body":{"id":86381,"nodeType":"Block","src":"651:49:173","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":86377,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86398,"src":"661:19:173","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":86378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:21:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86379,"nodeType":"ExpressionStatement","src":"661:21:173"},{"id":86380,"nodeType":"PlaceholderStatement","src":"692:1:173"}]},"name":"onlyVaraEthProgram","nameLocation":"630:18:173","parameters":{"id":86376,"nodeType":"ParameterList","parameters":[],"src":"648:2:173"},"virtual":false,"visibility":"internal"},{"id":86398,"nodeType":"FunctionDefinition","src":"706:158:173","nodes":[],"body":{"id":86397,"nodeType":"Block","src":"751:113:173","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86385,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"765:3:173","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"769:6:173","memberName":"sender","nodeType":"MemberAccess","src":"765:10:173","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":86389,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"787:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}],"id":86388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"779:7:173","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86387,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:173","typeDescriptions":{}}},"id":86390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"765:39:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86396,"nodeType":"IfStatement","src":"761:97:173","trueBody":{"id":86395,"nodeType":"Block","src":"806:52:173","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86392,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86364,"src":"827:18:173","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"827:20:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":86394,"nodeType":"RevertStatement","src":"820:27:173"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"715:19:173","parameters":{"id":86383,"nodeType":"ParameterList","parameters":[],"src":"734:2:173"},"returnParameters":{"id":86384,"nodeType":"ParameterList","parameters":[],"src":"751:0:173"},"scope":86455,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86415,"nodeType":"FunctionDefinition","src":"870:146:173","nodes":[],"body":{"id":86414,"nodeType":"Block","src":"931:85:173","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86409,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86400,"src":"994:7:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86407,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"977:3:173","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"981:12:173","memberName":"encodePacked","nodeType":"MemberAccess","src":"977:16:173","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":86411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1004:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86405,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86346,"src":"948:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"965:11:173","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"948:28:173","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":86412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:61:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86404,"id":86413,"nodeType":"Return","src":"941:68:173"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"879:10:173","parameters":{"id":86401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86400,"mutability":"mutable","name":"isPanic","nameLocation":"895:7:173","nodeType":"VariableDeclaration","scope":86415,"src":"890:12:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86399,"name":"bool","nodeType":"ElementaryTypeName","src":"890:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"889:14:173"},"returnParameters":{"id":86404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86415,"src":"922:7:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"921:9:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86432,"nodeType":"FunctionDefinition","src":"1081:166:173","nodes":[],"body":{"id":86431,"nodeType":"Block","src":"1156:91:173","nodes":[],"statements":[{"expression":{"id":86425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86423,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86348,"src":"1166:23:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1192:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1166:30:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86426,"nodeType":"ExpressionStatement","src":"1166:30:173"},{"eventCall":{"arguments":[{"id":86428,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86418,"src":"1230:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":86427,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86354,"src":"1212:17:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":86429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:28:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86430,"nodeType":"EmitStatement","src":"1207:33:173"}]},"baseFunctions":[86467],"documentation":{"id":86416,"nodeType":"StructuredDocumentation","src":"1022:54:173","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":86421,"kind":"modifierInvocation","modifierName":{"id":86420,"name":"onlyVaraEthProgram","nameLocations":["1137:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86382,"src":"1137:18:173"},"nodeType":"ModifierInvocation","src":"1137:18:173"}],"name":"replyOn_methodName","nameLocation":"1090:18:173","parameters":{"id":86419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86418,"mutability":"mutable","name":"messageId","nameLocation":"1117:9:173","nodeType":"VariableDeclaration","scope":86432,"src":"1109:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1108:19:173"},"returnParameters":{"id":86422,"nodeType":"ParameterList","parameters":[],"src":"1156:0:173"},"scope":86455,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86454,"nodeType":"FunctionDefinition","src":"1253:248:173","nodes":[],"body":{"id":86453,"nodeType":"Block","src":"1400:101:173","nodes":[],"statements":[{"expression":{"id":86445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86443,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86350,"src":"1410:18:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1431:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1410:25:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86446,"nodeType":"ExpressionStatement","src":"1410:25:173"},{"eventCall":{"arguments":[{"id":86448,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86434,"src":"1464:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86449,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86436,"src":"1475:7:173","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":86450,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86438,"src":"1484:9:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":86447,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86362,"src":"1451:12:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":86451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:43:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86452,"nodeType":"EmitStatement","src":"1446:48:173"}]},"baseFunctions":[73741],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":86441,"kind":"modifierInvocation","modifierName":{"id":86440,"name":"onlyVaraEthProgram","nameLocations":["1377:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86382,"src":"1377:18:173"},"nodeType":"ModifierInvocation","src":"1377:18:173"}],"name":"onErrorReply","nameLocation":"1262:12:173","parameters":{"id":86439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86434,"mutability":"mutable","name":"messageId","nameLocation":"1283:9:173","nodeType":"VariableDeclaration","scope":86454,"src":"1275:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86436,"mutability":"mutable","name":"payload","nameLocation":"1309:7:173","nodeType":"VariableDeclaration","scope":86454,"src":"1294:22:173","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86435,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86438,"mutability":"mutable","name":"replyCode","nameLocation":"1325:9:173","nodeType":"VariableDeclaration","scope":86454,"src":"1318:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86437,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1318:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1274:61:173"},"returnParameters":{"id":86442,"nodeType":"ParameterList","parameters":[],"src":"1400:0:173"},"scope":86455,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":86342,"name":"IDemoCallbacks","nameLocations":["221:14:173"],"nodeType":"IdentifierPath","referencedDeclaration":86468,"src":"221:14:173"},"id":86343,"nodeType":"InheritanceSpecifier","src":"221:14:173"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[86455,86468,73742],"name":"DemoCaller","nameLocation":"207:10:173","scope":86456,"usedErrors":[86364],"usedEvents":[86354,86362]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":173} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_varaEthProgram","type":"address","internalType":"contract IMirror"}],"stateMutability":"nonpayable"},{"type":"function","name":"VARA_ETH_PROGRAM","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IMirror"}],"stateMutability":"view"},{"type":"function","name":"methodName","inputs":[{"name":"isPanic","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"onErrorReply","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"replyCode","type":"bytes4","internalType":"bytes4"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"onErrorReplyCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOnMethodNameCalled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"replyOn_methodName","inputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ErrorReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"replyCode","type":"bytes4","indexed":false,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"MethodNameReplied","inputs":[{"name":"messageId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"UnauthorizedCaller","inputs":[]}],"bytecode":{"object":"0x60a034607357601f61040d38819003918201601f19168301916001600160401b03831184841017607757808492602094604052833981010312607357516001600160a01b0381168103607357608052604051610381908161008c823960805181818160700152818161019b01526103420152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;198:1305:173;;;;;;574:34;;198:1305;;;;;;;;574:34;198:1305;;;;;;;;;;;;;;;;;-1:-1:-1;198:1305:173;;;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634a646c7f146102375780638ed2570c1461021357806396b3d5a914610116578063b52ab555146100c4578063d24012f8146100a35763dab506b21461005b575f80fd5b3461009f575f36600319011261009f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b3461009f575f36600319011261009f57602060ff5f54166040519015158152f35b3461009f57602036600319011261009f576100dd610340565b600160ff195f5416175f557fe84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd260206040516004358152a1005b3461009f57602036600319011261009f5760043580151580910361009f5760206040518181019260f81b83526001815261015160218261030a565b6064604051809481936242129d60e81b8352604060048401525180918160448501528484015e5f83828401015260016024830152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610208575f906101d5575b602090604051908152f35b506020813d602011610200575b816101ef6020938361030a565b8101031261009f57602090516101ca565b3d91506101e2565b6040513d5f823e3d90fd5b3461009f575f36600319011261009f57602060ff5f5460081c166040519015158152f35b606036600319011261009f5760243567ffffffffffffffff811161009f573660238201121561009f57806004013567ffffffffffffffff811161009f57366024828401011161009f5760443563ffffffff60e01b811680910361009f577f71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e926024926080926102c4610340565b61010061ff00195f5416175f558160405195869460043586526060602087015282606087015201858501375f8383018501526040830152601f01601f19168101030190a1005b90601f8019910116810190811067ffffffffffffffff82111761032c57604052565b634e487b7160e01b5f52604160045260245ffd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361037257565b635c427cd960e01b5f5260045ffd","sourceMap":"198:1305:173:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;242:41;-1:-1:-1;;;;;198:1305:173;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;621:79;;:::i;:::-;198:1305;;;;;;;;;1212:28;198:1305;;;;;;;1212:28;198:1305;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;977:25;;;198:1305;;;;;;977:25;;;;;;:::i;:::-;198:1305;;;;;;;;;;948:61;;198:1305;;948:61;;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:61;;198:1305;;;;;;;948:16;198:1305;948:61;;;;;;198:1305;948:61;;;198:1305;;;;;;;;;948:61;;198:1305;948:61;;198:1305;948:61;;;;;;198:1305;948:61;;;:::i;:::-;;;198:1305;;;;;;;948:61;;;;;-1:-1:-1;948:61:173;;;198:1305;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1451:43;621:79;198:1305;621:79;198:1305;621:79;;;:::i;:::-;198:1305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;198:1305:173;;;1451:43;;;;198:1305;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;198:1305:173;;;;;-1:-1:-1;198:1305:173;706:158;787:16;-1:-1:-1;;;;;198:1305:173;765:10;:39;761:97;;706:158::o;761:97::-;827:20;;;;;;;","linkReferences":{},"immutableReferences":{"86428":[{"start":112,"length":32},{"start":411,"length":32},{"start":834,"length":32}]}},"methodIdentifiers":{"VARA_ETH_PROGRAM()":"dab506b2","methodName(bool)":"96b3d5a9","onErrorReply(bytes32,bytes,bytes4)":"4a646c7f","onErrorReplyCalled()":"8ed2570c","replyOnMethodNameCalled()":"d24012f8","replyOn_methodName(bytes32)":"b52ab555"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"_varaEthProgram\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UnauthorizedCaller\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ErrorReplied\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"MethodNameReplied\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VARA_ETH_PROGRAM\",\"outputs\":[{\"internalType\":\"contract IMirror\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isPanic\",\"type\":\"bool\"}],\"name\":\"methodName\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"onErrorReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"onErrorReplyCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"replyOnMethodNameCalled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"name\":\"replyOn_methodName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onErrorReply(bytes32,bytes,bytes4)\":{\"details\":\"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.\",\"params\":{\"messageId\":\"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.\",\"payload\":\"Payload of reply (e.g., error message in case of `UserspacePanic`).\",\"replyCode\":\"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`).\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"replyOn_methodName(bytes32)\":{\"notice\":\"forge-lint: disable-next-line(mixed-case-function)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/DemoCaller.sol\":\"DemoCaller\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009\",\"dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded\",\"dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA\"]},\"test/DemoCaller.sol\":{\"keccak256\":\"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186\",\"dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz\"]},\"test/IDemoCallbacks.sol\":{\"keccak256\":\"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d\",\"dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IMirror","name":"_varaEthProgram","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"UnauthorizedCaller"},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":false}],"type":"event","name":"ErrorReplied","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32","indexed":false}],"type":"event","name":"MethodNameReplied","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"VARA_ETH_PROGRAM","outputs":[{"internalType":"contract IMirror","name":"","type":"address"}]},{"inputs":[{"internalType":"bool","name":"isPanic","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"methodName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"bytes4","name":"replyCode","type":"bytes4"}],"stateMutability":"payable","type":"function","name":"onErrorReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"onErrorReplyCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"replyOnMethodNameCalled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"replyOn_methodName"}],"devdoc":{"kind":"dev","methods":{"onErrorReply(bytes32,bytes,bytes4)":{"details":"If reply is received, this method will be called by Mirror smart contract, but only if `gear_core::rpc::ReplyInfo` contains `gear_core::message::ReplyCode` that has `ReplyCode::Error(_)` variant.Currently this method has gas limit of 500_000 in order to prevent DoS attacks. Gas limit is proposed to be removed in the future when we switch to merkle roots approach for messages.","params":{"messageId":"Message ID of reply, generated by `MessageId::generate_reply(replied_to)` in Rust-side.","payload":"Payload of reply (e.g., error message in case of `UserspacePanic`).","replyCode":"Reply code of reply (`gear_core::message::ReplyCode.to_bytes()`)."}}},"version":1},"userdoc":{"kind":"user","methods":{"replyOn_methodName(bytes32)":{"notice":"forge-lint: disable-next-line(mixed-case-function)"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"test/DemoCaller.sol":"DemoCaller"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc","urls":["bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009","dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45","urls":["bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded","dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/DemoCaller.sol":{"keccak256":"0x42ef529fac84a409b712e6b6a94ee0b3852a351c5edb7849035876745a26cb97","urls":["bzz-raw://b24118f80827fd8da316e7d22dc33928f5bb5f29027826938b3d89b4a58ec186","dweb:/ipfs/QmYr1hKiJ9ku7T4uFAvnE8dACtrobV2C3sMaWvQB92j9Kz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"test/IDemoCallbacks.sol":{"keccak256":"0xd76edaaf6eded433143f382e16fa35681616537df11f7108178763874539fa46","urls":["bzz-raw://d952ba6f3e3bc017740605a47121b8ddf0b447ceec72de5dc75a6c323a1f413d","dweb:/ipfs/QmUY6LM6Uya3vn1AAzziAtfgEsp5YeMCF6GNo7jSpSgDDU"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":86430,"contract":"test/DemoCaller.sol:DemoCaller","label":"replyOnMethodNameCalled","offset":0,"slot":"0","type":"t_bool"},{"astId":86432,"contract":"test/DemoCaller.sol:DemoCaller","label":"onErrorReplyCalled","offset":1,"slot":"0","type":"t_bool"}],"types":{"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"}}},"ast":{"absolutePath":"test/DemoCaller.sol","id":86538,"exportedSymbols":{"DemoCaller":[86537],"IDemoCallbacks":[86550],"IMirror":[74395]},"nodeType":"SourceUnit","src":"74:1430:173","nodes":[{"id":86419,"nodeType":"PragmaDirective","src":"74:24:173","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":86421,"nodeType":"ImportDirective","src":"100:40:173","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":86538,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":86420,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"108:7:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86423,"nodeType":"ImportDirective","src":"141:55:173","nodes":[],"absolutePath":"test/IDemoCallbacks.sol","file":"test/IDemoCallbacks.sol","nameLocation":"-1:-1:-1","scope":86538,"sourceUnit":86551,"symbolAliases":[{"foreign":{"id":86422,"name":"IDemoCallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86550,"src":"149:14:173","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":86537,"nodeType":"ContractDefinition","src":"198:1305:173","nodes":[{"id":86428,"nodeType":"VariableDeclaration","src":"242:41:173","nodes":[],"constant":false,"functionSelector":"dab506b2","mutability":"immutable","name":"VARA_ETH_PROGRAM","nameLocation":"267:16:173","scope":86537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86427,"nodeType":"UserDefinedTypeName","pathNode":{"id":86426,"name":"IMirror","nameLocations":["242:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"242:7:173"},"referencedDeclaration":74395,"src":"242:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"public"},{"id":86430,"nodeType":"VariableDeclaration","src":"290:35:173","nodes":[],"constant":false,"functionSelector":"d24012f8","mutability":"mutable","name":"replyOnMethodNameCalled","nameLocation":"302:23:173","scope":86537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86429,"name":"bool","nodeType":"ElementaryTypeName","src":"290:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86432,"nodeType":"VariableDeclaration","src":"331:30:173","nodes":[],"constant":false,"functionSelector":"8ed2570c","mutability":"mutable","name":"onErrorReplyCalled","nameLocation":"343:18:173","scope":86537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86431,"name":"bool","nodeType":"ElementaryTypeName","src":"331:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":86436,"nodeType":"EventDefinition","src":"368:43:173","nodes":[],"anonymous":false,"eventSelector":"e84f069632bb62380c2db01d855c4a504e087d71add44c3639386496f56fcfd2","name":"MethodNameReplied","nameLocation":"374:17:173","parameters":{"id":86435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86434,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"400:9:173","nodeType":"VariableDeclaration","scope":86436,"src":"392:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"391:19:173"}},{"id":86444,"nodeType":"EventDefinition","src":"417:71:173","nodes":[],"anonymous":false,"eventSelector":"71e1710f6581d7e128cb38d25b5ea07b760f138a9073096c50be9c23d0f2b45e","name":"ErrorReplied","nameLocation":"423:12:173","parameters":{"id":86443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86438,"indexed":false,"mutability":"mutable","name":"messageId","nameLocation":"444:9:173","nodeType":"VariableDeclaration","scope":86444,"src":"436:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"436:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86440,"indexed":false,"mutability":"mutable","name":"payload","nameLocation":"461:7:173","nodeType":"VariableDeclaration","scope":86444,"src":"455:13:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":86439,"name":"bytes","nodeType":"ElementaryTypeName","src":"455:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86442,"indexed":false,"mutability":"mutable","name":"replyCode","nameLocation":"477:9:173","nodeType":"VariableDeclaration","scope":86444,"src":"470:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86441,"name":"bytes4","nodeType":"ElementaryTypeName","src":"470:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"435:52:173"}},{"id":86446,"nodeType":"ErrorDefinition","src":"494:27:173","nodes":[],"errorSelector":"5c427cd9","name":"UnauthorizedCaller","nameLocation":"500:18:173","parameters":{"id":86445,"nodeType":"ParameterList","parameters":[],"src":"518:2:173"}},{"id":86457,"nodeType":"FunctionDefinition","src":"527:88:173","nodes":[],"body":{"id":86456,"nodeType":"Block","src":"564:51:173","nodes":[],"statements":[{"expression":{"id":86454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86452,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86428,"src":"574:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":86453,"name":"_varaEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86449,"src":"593:15:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"src":"574:34:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86455,"nodeType":"ExpressionStatement","src":"574:34:173"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":86450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86449,"mutability":"mutable","name":"_varaEthProgram","nameLocation":"547:15:173","nodeType":"VariableDeclaration","scope":86457,"src":"539:23:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"},"typeName":{"id":86448,"nodeType":"UserDefinedTypeName","pathNode":{"id":86447,"name":"IMirror","nameLocations":["539:7:173"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"539:7:173"},"referencedDeclaration":74395,"src":"539:7:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"visibility":"internal"}],"src":"538:25:173"},"returnParameters":{"id":86451,"nodeType":"ParameterList","parameters":[],"src":"564:0:173"},"scope":86537,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":86464,"nodeType":"ModifierDefinition","src":"621:79:173","nodes":[],"body":{"id":86463,"nodeType":"Block","src":"651:49:173","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":86459,"name":"_onlyVaraEthProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86480,"src":"661:19:173","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":86460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:21:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86461,"nodeType":"ExpressionStatement","src":"661:21:173"},{"id":86462,"nodeType":"PlaceholderStatement","src":"692:1:173"}]},"name":"onlyVaraEthProgram","nameLocation":"630:18:173","parameters":{"id":86458,"nodeType":"ParameterList","parameters":[],"src":"648:2:173"},"virtual":false,"visibility":"internal"},{"id":86480,"nodeType":"FunctionDefinition","src":"706:158:173","nodes":[],"body":{"id":86479,"nodeType":"Block","src":"751:113:173","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":86473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":86467,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"765:3:173","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":86468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"769:6:173","memberName":"sender","nodeType":"MemberAccess","src":"765:10:173","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":86471,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86428,"src":"787:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}],"id":86470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"779:7:173","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":86469,"name":"address","nodeType":"ElementaryTypeName","src":"779:7:173","typeDescriptions":{}}},"id":86472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"779:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"765:39:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86478,"nodeType":"IfStatement","src":"761:97:173","trueBody":{"id":86477,"nodeType":"Block","src":"806:52:173","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":86474,"name":"UnauthorizedCaller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86446,"src":"827:18:173","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":86475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"827:20:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":86476,"nodeType":"RevertStatement","src":"820:27:173"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyVaraEthProgram","nameLocation":"715:19:173","parameters":{"id":86465,"nodeType":"ParameterList","parameters":[],"src":"734:2:173"},"returnParameters":{"id":86466,"nodeType":"ParameterList","parameters":[],"src":"751:0:173"},"scope":86537,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":86497,"nodeType":"FunctionDefinition","src":"870:146:173","nodes":[],"body":{"id":86496,"nodeType":"Block","src":"931:85:173","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":86491,"name":"isPanic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86482,"src":"994:7:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86489,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"977:3:173","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":86490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"981:12:173","memberName":"encodePacked","nodeType":"MemberAccess","src":"977:16:173","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":86492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:25:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":86493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1004:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":86487,"name":"VARA_ETH_PROGRAM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86428,"src":"948:16:173","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":86488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"965:11:173","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":74335,"src":"948:28:173","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":86494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:61:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":86486,"id":86495,"nodeType":"Return","src":"941:68:173"}]},"functionSelector":"96b3d5a9","implemented":true,"kind":"function","modifiers":[],"name":"methodName","nameLocation":"879:10:173","parameters":{"id":86483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86482,"mutability":"mutable","name":"isPanic","nameLocation":"895:7:173","nodeType":"VariableDeclaration","scope":86497,"src":"890:12:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86481,"name":"bool","nodeType":"ElementaryTypeName","src":"890:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"889:14:173"},"returnParameters":{"id":86486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":86497,"src":"922:7:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"922:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"921:9:173"},"scope":86537,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86514,"nodeType":"FunctionDefinition","src":"1081:166:173","nodes":[],"body":{"id":86513,"nodeType":"Block","src":"1156:91:173","nodes":[],"statements":[{"expression":{"id":86507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86505,"name":"replyOnMethodNameCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86430,"src":"1166:23:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1192:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1166:30:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86508,"nodeType":"ExpressionStatement","src":"1166:30:173"},{"eventCall":{"arguments":[{"id":86510,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86500,"src":"1230:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":86509,"name":"MethodNameReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86436,"src":"1212:17:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":86511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:28:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86512,"nodeType":"EmitStatement","src":"1207:33:173"}]},"baseFunctions":[86549],"documentation":{"id":86498,"nodeType":"StructuredDocumentation","src":"1022:54:173","text":"forge-lint: disable-next-line(mixed-case-function)"},"functionSelector":"b52ab555","implemented":true,"kind":"function","modifiers":[{"id":86503,"kind":"modifierInvocation","modifierName":{"id":86502,"name":"onlyVaraEthProgram","nameLocations":["1137:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86464,"src":"1137:18:173"},"nodeType":"ModifierInvocation","src":"1137:18:173"}],"name":"replyOn_methodName","nameLocation":"1090:18:173","parameters":{"id":86501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86500,"mutability":"mutable","name":"messageId","nameLocation":"1117:9:173","nodeType":"VariableDeclaration","scope":86514,"src":"1109:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1109:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1108:19:173"},"returnParameters":{"id":86504,"nodeType":"ParameterList","parameters":[],"src":"1156:0:173"},"scope":86537,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":86536,"nodeType":"FunctionDefinition","src":"1253:248:173","nodes":[],"body":{"id":86535,"nodeType":"Block","src":"1400:101:173","nodes":[],"statements":[{"expression":{"id":86527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86525,"name":"onErrorReplyCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86432,"src":"1410:18:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":86526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1431:4:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1410:25:173","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":86528,"nodeType":"ExpressionStatement","src":"1410:25:173"},{"eventCall":{"arguments":[{"id":86530,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86516,"src":"1464:9:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":86531,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86518,"src":"1475:7:173","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":86532,"name":"replyCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86520,"src":"1484:9:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":86529,"name":"ErrorReplied","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86444,"src":"1451:12:173","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes4_$returns$__$","typeString":"function (bytes32,bytes memory,bytes4)"}},"id":86533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1451:43:173","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":86534,"nodeType":"EmitStatement","src":"1446:48:173"}]},"baseFunctions":[73741],"functionSelector":"4a646c7f","implemented":true,"kind":"function","modifiers":[{"id":86523,"kind":"modifierInvocation","modifierName":{"id":86522,"name":"onlyVaraEthProgram","nameLocations":["1377:18:173"],"nodeType":"IdentifierPath","referencedDeclaration":86464,"src":"1377:18:173"},"nodeType":"ModifierInvocation","src":"1377:18:173"}],"name":"onErrorReply","nameLocation":"1262:12:173","parameters":{"id":86521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86516,"mutability":"mutable","name":"messageId","nameLocation":"1283:9:173","nodeType":"VariableDeclaration","scope":86536,"src":"1275:17:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":86515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1275:7:173","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":86518,"mutability":"mutable","name":"payload","nameLocation":"1309:7:173","nodeType":"VariableDeclaration","scope":86536,"src":"1294:22:173","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":86517,"name":"bytes","nodeType":"ElementaryTypeName","src":"1294:5:173","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":86520,"mutability":"mutable","name":"replyCode","nameLocation":"1325:9:173","nodeType":"VariableDeclaration","scope":86536,"src":"1318:16:173","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":86519,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1318:6:173","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1274:61:173"},"returnParameters":{"id":86524,"nodeType":"ParameterList","parameters":[],"src":"1400:0:173"},"scope":86537,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":86424,"name":"IDemoCallbacks","nameLocations":["221:14:173"],"nodeType":"IdentifierPath","referencedDeclaration":86550,"src":"221:14:173"},"id":86425,"nodeType":"InheritanceSpecifier","src":"221:14:173"}],"canonicalName":"DemoCaller","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[86537,86550,73742],"name":"DemoCaller","nameLocation":"207:10:173","scope":86538,"usedErrors":[86446],"usedEvents":[86436,86444]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":173} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Gear.json b/ethexe/ethereum/abi/Gear.json index 22391659fde..3d4d2a139fb 100644 --- a/ethexe/ethereum/abi/Gear.json +++ b/ethexe/ethereum/abi/Gear.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"COMPUTATION_THRESHOLD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"WVARA_PER_SECOND","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760a19081601c823930815050f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:32858:169:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:32858:169:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;2071:1;1515:32858;;;;;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;1855:13;1515:32858;;;;;;-1:-1:-1;;1515:32858:169;;;;;;;2383:18;1515:32858;;;;;;-1:-1:-1;;1515:32858:169;;;;;2203:1;1515:32858;;;","linkReferences":{}},"methodIdentifiers":{"COMPUTATION_THRESHOLD()":"7841919a","VALIDATORS_THRESHOLD_DENOMINATOR()":"0279472c","VALIDATORS_THRESHOLD_NUMERATOR()":"db3fe3f1","WVARA_PER_SECOND()":"2c184e1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"COMPUTATION_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WVARA_PER_SECOND\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Library for core protocol utility functions for hashing, validation, and consensus-related logic. It provides: - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions) - Validator set management with era-based switching and threshold configuration - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures with transient storage to prevent double counting of signatures - Era and timeline utilities for selecting correct validator sets based on timestamp The library acts as a shared foundation for consensus, validation, and commitment verification across all protocol components.\",\"errors\":{\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"COMPUTATION_THRESHOLD\":{\"details\":\"The threshold for computation cost in gear gas. 2.5 * (10 ** 9) of gear gas.\"},\"VALIDATORS_THRESHOLD_DENOMINATOR\":{\"details\":\"The validators threshold denominator.\"},\"VALIDATORS_THRESHOLD_NUMERATOR\":{\"details\":\"2/3 of validators must sign the commitment for it to be valid.The validators threshold numerator.\"},\"WVARA_PER_SECOND\":{\"details\":\"The amount of WVara tokens to be paid per compute second. 10 WVARA tokens per compute second.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Gear.sol\":\"Gear\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"stateMutability":"view","type":"function","name":"COMPUTATION_THRESHOLD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WVARA_PER_SECOND","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]}],"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/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libraries/Gear.sol":"Gear"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":84100,"exportedSymbols":{"ECDSA":[51038],"FROST":[40965],"Gear":[84099],"Hashes":[41483],"IRouter":[74990],"MessageHashUtils":[52237],"SafeCast":[55635],"SlotDerivation":[48965],"Time":[60343],"TransientSlot":[50690]},"nodeType":"SourceUnit","src":"74:34300:169","nodes":[{"id":82835,"nodeType":"PragmaDirective","src":"74:24:169","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82837,"nodeType":"ImportDirective","src":"100:80:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":82836,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"108:14:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82839,"nodeType":"ImportDirective","src":"181:78:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":50691,"symbolAliases":[{"foreign":{"id":82838,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"189:13:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82841,"nodeType":"ImportDirective","src":"260:75:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":82840,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"268:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82843,"nodeType":"ImportDirective","src":"336:97:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":52238,"symbolAliases":[{"foreign":{"id":82842,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52237,"src":"344:16:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82845,"nodeType":"ImportDirective","src":"434:73:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":55636,"symbolAliases":[{"foreign":{"id":82844,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"442:8:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82847,"nodeType":"ImportDirective","src":"508:66:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":82846,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"516:4:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82849,"nodeType":"ImportDirective","src":"575:52:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":82848,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"583:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82851,"nodeType":"ImportDirective","src":"628:73:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":82850,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"636:6:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82853,"nodeType":"ImportDirective","src":"702:40:169","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84100,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":82852,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"710:7:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84099,"nodeType":"ContractDefinition","src":"1515:32858:169","nodes":[{"id":82857,"nodeType":"UsingForDirective","src":"1534:24:169","nodes":[],"global":false,"libraryName":{"id":82855,"name":"ECDSA","nameLocations":["1540:5:169"],"nodeType":"IdentifierPath","referencedDeclaration":51038,"src":"1540:5:169"},"typeName":{"id":82856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1550:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":82860,"nodeType":"UsingForDirective","src":"1563:35:169","nodes":[],"global":false,"libraryName":{"id":82858,"name":"MessageHashUtils","nameLocations":["1569:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":52237,"src":"1569:16:169"},"typeName":{"id":82859,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":82862,"nodeType":"UsingForDirective","src":"1604:26:169","nodes":[],"global":false,"libraryName":{"id":82861,"name":"TransientSlot","nameLocations":["1610:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":50690,"src":"1610:13:169"}},{"id":82864,"nodeType":"UsingForDirective","src":"1635:27:169","nodes":[],"global":false,"libraryName":{"id":82863,"name":"SlotDerivation","nameLocations":["1641:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":48965,"src":"1641:14:169"}},{"id":82868,"nodeType":"VariableDeclaration","src":"1808:60:169","nodes":[],"constant":true,"documentation":{"id":82865,"nodeType":"StructuredDocumentation","src":"1691:112:169","text":" @dev The threshold for computation cost in gear gas.\n 2.5 * (10 ** 9) of gear gas."},"functionSelector":"7841919a","mutability":"constant","name":"COMPUTATION_THRESHOLD","nameLocation":"1831:21:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":82866,"name":"uint64","nodeType":"ElementaryTypeName","src":"1808:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":82867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1855:13:169","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":82872,"nodeType":"VariableDeclaration","src":"2014:58:169","nodes":[],"constant":true,"documentation":{"id":82869,"nodeType":"StructuredDocumentation","src":"1875:134:169","text":" @dev 2/3 of validators must sign the commitment for it to be valid.\n @dev The validators threshold numerator."},"functionSelector":"db3fe3f1","mutability":"constant","name":"VALIDATORS_THRESHOLD_NUMERATOR","nameLocation":"2038:30:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82870,"name":"uint128","nodeType":"ElementaryTypeName","src":"2014:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":82871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2071:1:169","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":82876,"nodeType":"VariableDeclaration","src":"2144:60:169","nodes":[],"constant":true,"documentation":{"id":82873,"nodeType":"StructuredDocumentation","src":"2078:61:169","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2168:32:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82874,"name":"uint128","nodeType":"ElementaryTypeName","src":"2144:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":82875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2203:1:169","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":82880,"nodeType":"VariableDeclaration","src":"2340:61:169","nodes":[],"constant":true,"documentation":{"id":82877,"nodeType":"StructuredDocumentation","src":"2211:124:169","text":" @dev The amount of WVara tokens to be paid per compute second.\n 10 WVARA tokens per compute second."},"functionSelector":"2c184e1c","mutability":"constant","name":"WVARA_PER_SECOND","nameLocation":"2364:16:169","scope":84099,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82878,"name":"uint128","nodeType":"ElementaryTypeName","src":"2340:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":82879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:18:169","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":82883,"nodeType":"ErrorDefinition","src":"2528:32:169","nodes":[],"documentation":{"id":82881,"nodeType":"StructuredDocumentation","src":"2428:95:169","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2534:23:169","parameters":{"id":82882,"nodeType":"ParameterList","parameters":[],"src":"2557:2:169"}},{"id":82886,"nodeType":"ErrorDefinition","src":"2652:38:169","nodes":[],"documentation":{"id":82884,"nodeType":"StructuredDocumentation","src":"2566:81:169","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"2658:29:169","parameters":{"id":82885,"nodeType":"ParameterList","parameters":[],"src":"2687:2:169"}},{"id":82889,"nodeType":"ErrorDefinition","src":"2768:26:169","nodes":[],"documentation":{"id":82887,"nodeType":"StructuredDocumentation","src":"2696:67:169","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"2774:17:169","parameters":{"id":82888,"nodeType":"ParameterList","parameters":[],"src":"2791:2:169"}},{"id":82892,"nodeType":"ErrorDefinition","src":"2883:35:169","nodes":[],"documentation":{"id":82890,"nodeType":"StructuredDocumentation","src":"2800:78:169","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"2889:26:169","parameters":{"id":82891,"nodeType":"ParameterList","parameters":[],"src":"2915:2:169"}},{"id":82895,"nodeType":"ErrorDefinition","src":"3037:36:169","nodes":[],"documentation":{"id":82893,"nodeType":"StructuredDocumentation","src":"2924:108:169","text":" @dev Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes."},"errorSelector":"2ce466bf","name":"InvalidFrostSignatureLength","nameLocation":"3043:27:169","parameters":{"id":82894,"nodeType":"ParameterList","parameters":[],"src":"3070:2:169"}},{"id":82898,"nodeType":"ErrorDefinition","src":"3251:36:169","nodes":[],"documentation":{"id":82896,"nodeType":"StructuredDocumentation","src":"3079:167:169","text":" @dev Thrown when the timestamp of an era is equal to the timestamp of the previous era.\n Should never happen, because the implementation."},"errorSelector":"f26224af","name":"ErasTimestampMustNotBeEqual","nameLocation":"3257:27:169","parameters":{"id":82897,"nodeType":"ParameterList","parameters":[],"src":"3284:2:169"}},{"id":82901,"nodeType":"ErrorDefinition","src":"3441:39:169","nodes":[],"documentation":{"id":82899,"nodeType":"StructuredDocumentation","src":"3293:143:169","text":" @dev Thrown when no validators are found for a given timestamp.\n Should never happen, because the implementation."},"errorSelector":"98715d2a","name":"ValidatorsNotFoundForTimestamp","nameLocation":"3447:30:169","parameters":{"id":82900,"nodeType":"ParameterList","parameters":[],"src":"3477:2:169"}},{"id":82907,"nodeType":"StructDefinition","src":"3768:72:169","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":82902,"nodeType":"StructuredDocumentation","src":"3507:256:169","text":" @dev Represents an aggregated public key.\n When present (`hasAggregatedPublicKey` is `true`), it is checked with `FROST.isValidPublicKey(x, y)` in `Router._resetValidators(...)`,\n so we can be sure that it is valid."},"members":[{"constant":false,"id":82904,"mutability":"mutable","name":"x","nameLocation":"3813:1:169","nodeType":"VariableDeclaration","scope":82907,"src":"3805:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82903,"name":"uint256","nodeType":"ElementaryTypeName","src":"3805:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82906,"mutability":"mutable","name":"y","nameLocation":"3832:1:169","nodeType":"VariableDeclaration","scope":82907,"src":"3824:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82905,"name":"uint256","nodeType":"ElementaryTypeName","src":"3824:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3775:19:169","scope":84099,"visibility":"public"},{"id":82928,"nodeType":"StructDefinition","src":"3909:1200:169","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":82908,"nodeType":"StructuredDocumentation","src":"3846:58:169","text":" @dev Represents validators information."},"members":[{"constant":false,"id":82912,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4299:19:169","nodeType":"VariableDeclaration","scope":82928,"src":"4279:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82911,"nodeType":"UserDefinedTypeName","pathNode":{"id":82910,"name":"AggregatedPublicKey","nameLocations":["4279:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"4279:19:169"},"referencedDeclaration":82907,"src":"4279:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82915,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4626:40:169","nodeType":"VariableDeclaration","scope":82928,"src":"4618:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82914,"name":"address","nodeType":"ElementaryTypeName","src":"4618:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82920,"mutability":"mutable","name":"map","nameLocation":"4884:3:169","nodeType":"VariableDeclaration","scope":82928,"src":"4859:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":82919,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":82917,"name":"address","nodeType":"ElementaryTypeName","src":"4867:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4859:24:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":82918,"name":"bool","nodeType":"ElementaryTypeName","src":"4878:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":82924,"mutability":"mutable","name":"list","nameLocation":"4976:4:169","nodeType":"VariableDeclaration","scope":82928,"src":"4966:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82922,"name":"address","nodeType":"ElementaryTypeName","src":"4966:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82923,"nodeType":"ArrayTypeName","src":"4966:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82927,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5086:16:169","nodeType":"VariableDeclaration","scope":82928,"src":"5078:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82926,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3916:10:169","scope":84099,"visibility":"public"},{"id":82940,"nodeType":"StructDefinition","src":"5186:194:169","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":82929,"nodeType":"StructuredDocumentation","src":"5115:66:169","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":82932,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5238:19:169","nodeType":"VariableDeclaration","scope":82940,"src":"5218:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82931,"nodeType":"UserDefinedTypeName","pathNode":{"id":82930,"name":"AggregatedPublicKey","nameLocations":["5218:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"5218:19:169"},"referencedDeclaration":82907,"src":"5218:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82934,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5275:40:169","nodeType":"VariableDeclaration","scope":82940,"src":"5267:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82933,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82937,"mutability":"mutable","name":"list","nameLocation":"5335:4:169","nodeType":"VariableDeclaration","scope":82940,"src":"5325:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82935,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82936,"nodeType":"ArrayTypeName","src":"5325:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82939,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5357:16:169","nodeType":"VariableDeclaration","scope":82940,"src":"5349:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82938,"name":"uint256","nodeType":"ElementaryTypeName","src":"5349:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5193:14:169","scope":84099,"visibility":"public"},{"id":82951,"nodeType":"StructDefinition","src":"5451:353:169","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":82941,"nodeType":"StructuredDocumentation","src":"5386:60:169","text":" @dev Represents address book information."},"members":[{"constant":false,"id":82944,"mutability":"mutable","name":"mirror","nameLocation":"5566:6:169","nodeType":"VariableDeclaration","scope":82951,"src":"5558:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82943,"name":"address","nodeType":"ElementaryTypeName","src":"5558:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82947,"mutability":"mutable","name":"wrappedVara","nameLocation":"5673:11:169","nodeType":"VariableDeclaration","scope":82951,"src":"5665:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82946,"name":"address","nodeType":"ElementaryTypeName","src":"5665:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82950,"mutability":"mutable","name":"middleware","nameLocation":"5787:10:169","nodeType":"VariableDeclaration","scope":82951,"src":"5779:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82949,"name":"address","nodeType":"ElementaryTypeName","src":"5779:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5458:11:169","scope":84099,"visibility":"public"},{"id":82959,"nodeType":"StructDefinition","src":"5866:248:169","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":82952,"nodeType":"StructuredDocumentation","src":"5810:51:169","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":82955,"mutability":"mutable","name":"id","nameLocation":"6010:2:169","nodeType":"VariableDeclaration","scope":82959,"src":"6002:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6002:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82958,"mutability":"mutable","name":"valid","nameLocation":"6102:5:169","nodeType":"VariableDeclaration","scope":82959,"src":"6097:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82957,"name":"bool","nodeType":"ElementaryTypeName","src":"6097:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5873:14:169","scope":84099,"visibility":"public"},{"id":82972,"nodeType":"StructDefinition","src":"6177:541:169","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":82960,"nodeType":"StructuredDocumentation","src":"6120:52:169","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":82965,"mutability":"mutable","name":"transitions","nameLocation":"6319:11:169","nodeType":"VariableDeclaration","scope":82972,"src":"6301:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82963,"nodeType":"UserDefinedTypeName","pathNode":{"id":82962,"name":"StateTransition","nameLocations":["6301:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"6301:15:169"},"referencedDeclaration":83167,"src":"6301:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82964,"nodeType":"ArrayTypeName","src":"6301:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":82968,"mutability":"mutable","name":"head","nameLocation":"6436:4:169","nodeType":"VariableDeclaration","scope":82972,"src":"6428:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6428:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82971,"mutability":"mutable","name":"lastAdvancedEthBlock","nameLocation":"6691:20:169","nodeType":"VariableDeclaration","scope":82972,"src":"6683:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6683:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6184:15:169","scope":84099,"visibility":"public"},{"id":82986,"nodeType":"StructDefinition","src":"6786:226:169","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":82973,"nodeType":"StructuredDocumentation","src":"6724:57:169","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":82975,"mutability":"mutable","name":"hasAggregatedPublicKey","nameLocation":"6829:22:169","nodeType":"VariableDeclaration","scope":82986,"src":"6824:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82974,"name":"bool","nodeType":"ElementaryTypeName","src":"6824:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":82978,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6881:19:169","nodeType":"VariableDeclaration","scope":82986,"src":"6861:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82977,"nodeType":"UserDefinedTypeName","pathNode":{"id":82976,"name":"AggregatedPublicKey","nameLocations":["6861:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"6861:19:169"},"referencedDeclaration":82907,"src":"6861:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82980,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6916:33:169","nodeType":"VariableDeclaration","scope":82986,"src":"6910:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":82979,"name":"bytes","nodeType":"ElementaryTypeName","src":"6910:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82983,"mutability":"mutable","name":"validators","nameLocation":"6969:10:169","nodeType":"VariableDeclaration","scope":82986,"src":"6959:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82981,"name":"address","nodeType":"ElementaryTypeName","src":"6959:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82982,"nodeType":"ArrayTypeName","src":"6959:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82985,"mutability":"mutable","name":"eraIndex","nameLocation":"6997:8:169","nodeType":"VariableDeclaration","scope":82986,"src":"6989:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82984,"name":"uint256","nodeType":"ElementaryTypeName","src":"6989:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6793:20:169","scope":84099,"visibility":"public"},{"id":83020,"nodeType":"StructDefinition","src":"7075:1206:169","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":82987,"nodeType":"StructuredDocumentation","src":"7018:52:169","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":82990,"mutability":"mutable","name":"blockHash","nameLocation":"7212:9:169","nodeType":"VariableDeclaration","scope":83020,"src":"7204:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7204:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82993,"mutability":"mutable","name":"blockTimestamp","nameLocation":"7340:14:169","nodeType":"VariableDeclaration","scope":83020,"src":"7333:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82992,"name":"uint48","nodeType":"ElementaryTypeName","src":"7333:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":82996,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7453:26:169","nodeType":"VariableDeclaration","scope":83020,"src":"7445:34:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7445:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":82999,"mutability":"mutable","name":"expiry","nameLocation":"7715:6:169","nodeType":"VariableDeclaration","scope":83020,"src":"7709:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82998,"name":"uint8","nodeType":"ElementaryTypeName","src":"7709:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83004,"mutability":"mutable","name":"chainCommitment","nameLocation":"7841:15:169","nodeType":"VariableDeclaration","scope":83020,"src":"7823:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":83002,"nodeType":"UserDefinedTypeName","pathNode":{"id":83001,"name":"ChainCommitment","nameLocations":["7823:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":82972,"src":"7823:15:169"},"referencedDeclaration":82972,"src":"7823:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":83003,"nodeType":"ArrayTypeName","src":"7823:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83009,"mutability":"mutable","name":"codeCommitments","nameLocation":"7968:15:169","nodeType":"VariableDeclaration","scope":83020,"src":"7951:32:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":83007,"nodeType":"UserDefinedTypeName","pathNode":{"id":83006,"name":"CodeCommitment","nameLocations":["7951:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82959,"src":"7951:14:169"},"referencedDeclaration":82959,"src":"7951:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":83008,"nodeType":"ArrayTypeName","src":"7951:16:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83014,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"8107:17:169","nodeType":"VariableDeclaration","scope":83020,"src":"8087:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":83012,"nodeType":"UserDefinedTypeName","pathNode":{"id":83011,"name":"RewardsCommitment","nameLocations":["8087:17:169"],"nodeType":"IdentifierPath","referencedDeclaration":83030,"src":"8087:17:169"},"referencedDeclaration":83030,"src":"8087:17:169","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":83013,"nodeType":"ArrayTypeName","src":"8087:19:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83019,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"8254:20:169","nodeType":"VariableDeclaration","scope":83020,"src":"8231:43:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":83017,"nodeType":"UserDefinedTypeName","pathNode":{"id":83016,"name":"ValidatorsCommitment","nameLocations":["8231:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"8231:20:169"},"referencedDeclaration":82986,"src":"8231:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":83018,"nodeType":"ArrayTypeName","src":"8231:22:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"7082:15:169","scope":84099,"visibility":"public"},{"id":83030,"nodeType":"StructDefinition","src":"8346:144:169","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":83021,"nodeType":"StructuredDocumentation","src":"8287:54:169","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":83024,"mutability":"mutable","name":"operators","nameLocation":"8407:9:169","nodeType":"VariableDeclaration","scope":83030,"src":"8381:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":83023,"nodeType":"UserDefinedTypeName","pathNode":{"id":83022,"name":"OperatorRewardsCommitment","nameLocations":["8381:25:169"],"nodeType":"IdentifierPath","referencedDeclaration":83036,"src":"8381:25:169"},"referencedDeclaration":83036,"src":"8381:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83027,"mutability":"mutable","name":"stakers","nameLocation":"8450:7:169","nodeType":"VariableDeclaration","scope":83030,"src":"8426:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":83026,"nodeType":"UserDefinedTypeName","pathNode":{"id":83025,"name":"StakerRewardsCommitment","nameLocations":["8426:23:169"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"8426:23:169"},"referencedDeclaration":83046,"src":"8426:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83029,"mutability":"mutable","name":"timestamp","nameLocation":"8474:9:169","nodeType":"VariableDeclaration","scope":83030,"src":"8467:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83028,"name":"uint48","nodeType":"ElementaryTypeName","src":"8467:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"8353:17:169","scope":84099,"visibility":"public"},{"id":83036,"nodeType":"StructDefinition","src":"8564:86:169","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":83031,"nodeType":"StructuredDocumentation","src":"8496:63:169","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":83033,"mutability":"mutable","name":"amount","nameLocation":"8615:6:169","nodeType":"VariableDeclaration","scope":83036,"src":"8607:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83032,"name":"uint256","nodeType":"ElementaryTypeName","src":"8607:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83035,"mutability":"mutable","name":"root","nameLocation":"8639:4:169","nodeType":"VariableDeclaration","scope":83036,"src":"8631:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8631:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8571:25:169","scope":84099,"visibility":"public"},{"id":83046,"nodeType":"StructDefinition","src":"8722:128:169","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":83037,"nodeType":"StructuredDocumentation","src":"8656:61:169","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":83041,"mutability":"mutable","name":"distribution","nameLocation":"8779:12:169","nodeType":"VariableDeclaration","scope":83046,"src":"8763:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":83039,"nodeType":"UserDefinedTypeName","pathNode":{"id":83038,"name":"StakerRewards","nameLocations":["8763:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83052,"src":"8763:13:169"},"referencedDeclaration":83052,"src":"8763:13:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":83040,"nodeType":"ArrayTypeName","src":"8763:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":83043,"mutability":"mutable","name":"totalAmount","nameLocation":"8809:11:169","nodeType":"VariableDeclaration","scope":83046,"src":"8801:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83042,"name":"uint256","nodeType":"ElementaryTypeName","src":"8801:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83045,"mutability":"mutable","name":"token","nameLocation":"8838:5:169","nodeType":"VariableDeclaration","scope":83046,"src":"8830:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83044,"name":"address","nodeType":"ElementaryTypeName","src":"8830:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8729:23:169","scope":84099,"visibility":"public"},{"id":83052,"nodeType":"StructDefinition","src":"8911:75:169","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":83047,"nodeType":"StructuredDocumentation","src":"8856:50:169","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":83049,"mutability":"mutable","name":"vault","nameLocation":"8950:5:169","nodeType":"VariableDeclaration","scope":83052,"src":"8942:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83048,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83051,"mutability":"mutable","name":"amount","nameLocation":"8973:6:169","nodeType":"VariableDeclaration","scope":83052,"src":"8965:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83050,"name":"uint256","nodeType":"ElementaryTypeName","src":"8965:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8918:13:169","scope":84099,"visibility":"public"},{"id":83060,"nodeType":"EnumDefinition","src":"9061:960:169","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":83053,"nodeType":"StructuredDocumentation","src":"8992:64:169","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":83054,"nodeType":"StructuredDocumentation","src":"9086:260:169","text":" @dev The code commitment is in an unknown state (`CodeState.Unknown = 0 as uint8`).\n This is the default state for all code commitments,\n and it means that the code commitment has not been processed yet."},"id":83055,"name":"Unknown","nameLocation":"9355:7:169","nodeType":"EnumValue","src":"9355:7:169"},{"documentation":{"id":83056,"nodeType":"StructuredDocumentation","src":"9372:465:169","text":" @dev The code commitment has requested validation by user (`CodeState.ValidationRequested = 1 as uint8`).\n Users calls `IRouter(router).requestCodeValidation(bytes32 _codeId)` to request code validation and\n attaches sidecar to this transaction (the transaction is encoded in EIP-7594 format),\n then validators can validate the code commitment and set `CodeState.Validated` in case of success."},"id":83057,"name":"ValidationRequested","nameLocation":"9846:19:169","nodeType":"EnumValue","src":"9846:19:169"},{"documentation":{"id":83058,"nodeType":"StructuredDocumentation","src":"9875:122:169","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":83059,"name":"Validated","nameLocation":"10006:9:169","nodeType":"EnumValue","src":"10006:9:169"}],"name":"CodeState","nameLocation":"9066:9:169"},{"id":83066,"nodeType":"StructDefinition","src":"10101:81:169","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":83061,"nodeType":"StructuredDocumentation","src":"10027:69:169","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":83063,"mutability":"mutable","name":"hash","nameLocation":"10145:4:169","nodeType":"VariableDeclaration","scope":83066,"src":"10137:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10137:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83065,"mutability":"mutable","name":"timestamp","nameLocation":"10166:9:169","nodeType":"VariableDeclaration","scope":83066,"src":"10159:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83064,"name":"uint48","nodeType":"ElementaryTypeName","src":"10159:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"10108:18:169","scope":84099,"visibility":"public"},{"id":83072,"nodeType":"StructDefinition","src":"10249:92:169","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":83067,"nodeType":"StructuredDocumentation","src":"10188:56:169","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":83069,"mutability":"mutable","name":"threshold","nameLocation":"10293:9:169","nodeType":"VariableDeclaration","scope":83072,"src":"10286:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83068,"name":"uint64","nodeType":"ElementaryTypeName","src":"10286:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":83071,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"10320:14:169","nodeType":"VariableDeclaration","scope":83072,"src":"10312:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83070,"name":"uint128","nodeType":"ElementaryTypeName","src":"10312:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"10256:19:169","scope":84099,"visibility":"public"},{"id":83080,"nodeType":"StructDefinition","src":"10419:102:169","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":83073,"nodeType":"StructuredDocumentation","src":"10347:67:169","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":83075,"mutability":"mutable","name":"hash","nameLocation":"10461:4:169","nodeType":"VariableDeclaration","scope":83080,"src":"10453:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83074,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10453:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83077,"mutability":"mutable","name":"number","nameLocation":"10482:6:169","nodeType":"VariableDeclaration","scope":83080,"src":"10475:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":83076,"name":"uint32","nodeType":"ElementaryTypeName","src":"10475:6:169","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":83079,"mutability":"mutable","name":"timestamp","nameLocation":"10505:9:169","nodeType":"VariableDeclaration","scope":83080,"src":"10498:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83078,"name":"uint48","nodeType":"ElementaryTypeName","src":"10498:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10426:16:169","scope":84099,"visibility":"public"},{"id":83101,"nodeType":"StructDefinition","src":"10575:1092:169","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":83081,"nodeType":"StructuredDocumentation","src":"10527:43:169","text":" @dev Represents message."},"members":[{"constant":false,"id":83084,"mutability":"mutable","name":"id","nameLocation":"10700:2:169","nodeType":"VariableDeclaration","scope":83101,"src":"10692:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10692:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83087,"mutability":"mutable","name":"destination","nameLocation":"10896:11:169","nodeType":"VariableDeclaration","scope":83101,"src":"10888:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83086,"name":"address","nodeType":"ElementaryTypeName","src":"10888:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83090,"mutability":"mutable","name":"payload","nameLocation":"10991:7:169","nodeType":"VariableDeclaration","scope":83101,"src":"10985:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83089,"name":"bytes","nodeType":"ElementaryTypeName","src":"10985:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83093,"mutability":"mutable","name":"value","nameLocation":"11095:5:169","nodeType":"VariableDeclaration","scope":83101,"src":"11087:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83092,"name":"uint128","nodeType":"ElementaryTypeName","src":"11087:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83097,"mutability":"mutable","name":"replyDetails","nameLocation":"11343:12:169","nodeType":"VariableDeclaration","scope":83101,"src":"11330:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":83096,"nodeType":"UserDefinedTypeName","pathNode":{"id":83095,"name":"ReplyDetails","nameLocations":["11330:12:169"],"nodeType":"IdentifierPath","referencedDeclaration":83137,"src":"11330:12:169"},"referencedDeclaration":83137,"src":"11330:12:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":83100,"mutability":"mutable","name":"call","nameLocation":"11656:4:169","nodeType":"VariableDeclaration","scope":83101,"src":"11651:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83099,"name":"bool","nodeType":"ElementaryTypeName","src":"11651:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10582:7:169","scope":84099,"visibility":"public"},{"id":83129,"nodeType":"StructDefinition","src":"11731:1298:169","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":83102,"nodeType":"StructuredDocumentation","src":"11673:53:169","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":83108,"mutability":"mutable","name":"codes","nameLocation":"12005:5:169","nodeType":"VariableDeclaration","scope":83129,"src":"11975:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":83107,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11983:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"11975:29:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83106,"nodeType":"UserDefinedTypeName","pathNode":{"id":83105,"name":"CodeState","nameLocations":["11994:9:169"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"11994:9:169"},"referencedDeclaration":83060,"src":"11994:9:169","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":83113,"mutability":"mutable","name":"programs","nameLocation":"12223:8:169","nodeType":"VariableDeclaration","scope":83129,"src":"12195:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":83112,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83110,"name":"address","nodeType":"ElementaryTypeName","src":"12203:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"12195:27:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12214:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":83116,"mutability":"mutable","name":"programsCount","nameLocation":"12340:13:169","nodeType":"VariableDeclaration","scope":83129,"src":"12332:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83115,"name":"uint256","nodeType":"ElementaryTypeName","src":"12332:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83119,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12468:19:169","nodeType":"VariableDeclaration","scope":83129,"src":"12460:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83118,"name":"uint256","nodeType":"ElementaryTypeName","src":"12460:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83122,"mutability":"mutable","name":"maxValidators","nameLocation":"12586:13:169","nodeType":"VariableDeclaration","scope":83129,"src":"12579:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":83121,"name":"uint16","nodeType":"ElementaryTypeName","src":"12579:6:169","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":83125,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12777:28:169","nodeType":"VariableDeclaration","scope":83129,"src":"12769:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83124,"name":"uint256","nodeType":"ElementaryTypeName","src":"12769:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83128,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"12993:29:169","nodeType":"VariableDeclaration","scope":83129,"src":"12985:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83127,"name":"uint256","nodeType":"ElementaryTypeName","src":"12985:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11738:12:169","scope":84099,"visibility":"public"},{"id":83137,"nodeType":"StructDefinition","src":"13095:564:169","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":83130,"nodeType":"StructuredDocumentation","src":"13035:55:169","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":83133,"mutability":"mutable","name":"to","nameLocation":"13304:2:169","nodeType":"VariableDeclaration","scope":83137,"src":"13296:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13296:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83136,"mutability":"mutable","name":"code","nameLocation":"13648:4:169","nodeType":"VariableDeclaration","scope":83137,"src":"13641:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":83135,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13641:6:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"13102:12:169","scope":84099,"visibility":"public"},{"id":83167,"nodeType":"StructDefinition","src":"13936:1608:169","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":83138,"nodeType":"StructuredDocumentation","src":"13665:266:169","text":" @dev Represents state transition of `Mirror`.\n Most important type in this, in Rust we use this type to mutate state of `Mirror` instances.\n (see `ethexe/common/src/gear.rs` for more details on how this type is used in Rust)."},"members":[{"constant":false,"id":83141,"mutability":"mutable","name":"actorId","nameLocation":"14163:7:169","nodeType":"VariableDeclaration","scope":83167,"src":"14155:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83140,"name":"address","nodeType":"ElementaryTypeName","src":"14155:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83144,"mutability":"mutable","name":"newStateHash","nameLocation":"14344:12:169","nodeType":"VariableDeclaration","scope":83167,"src":"14336:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14336:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83147,"mutability":"mutable","name":"exited","nameLocation":"14451:6:169","nodeType":"VariableDeclaration","scope":83167,"src":"14446:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83146,"name":"bool","nodeType":"ElementaryTypeName","src":"14446:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83150,"mutability":"mutable","name":"inheritor","nameLocation":"14653:9:169","nodeType":"VariableDeclaration","scope":83167,"src":"14645:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83149,"name":"address","nodeType":"ElementaryTypeName","src":"14645:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83153,"mutability":"mutable","name":"valueToReceive","nameLocation":"15031:14:169","nodeType":"VariableDeclaration","scope":83167,"src":"15023:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83152,"name":"uint128","nodeType":"ElementaryTypeName","src":"15023:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83156,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"15327:26:169","nodeType":"VariableDeclaration","scope":83167,"src":"15322:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83155,"name":"bool","nodeType":"ElementaryTypeName","src":"15322:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83161,"mutability":"mutable","name":"valueClaims","nameLocation":"15439:11:169","nodeType":"VariableDeclaration","scope":83167,"src":"15426:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":83159,"nodeType":"UserDefinedTypeName","pathNode":{"id":83158,"name":"ValueClaim","nameLocations":["15426:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"15426:10:169"},"referencedDeclaration":83207,"src":"15426:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":83160,"nodeType":"ArrayTypeName","src":"15426:12:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"},{"constant":false,"id":83166,"mutability":"mutable","name":"messages","nameLocation":"15529:8:169","nodeType":"VariableDeclaration","scope":83167,"src":"15519:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":83164,"nodeType":"UserDefinedTypeName","pathNode":{"id":83163,"name":"Message","nameLocations":["15519:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"15519:7:169"},"referencedDeclaration":83101,"src":"15519:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"id":83165,"nodeType":"ArrayTypeName","src":"15519:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"13943:15:169","scope":84099,"visibility":"public"},{"id":83175,"nodeType":"StructDefinition","src":"15604:104:169","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":83168,"nodeType":"StructuredDocumentation","src":"15550:49:169","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":83170,"mutability":"mutable","name":"era","nameLocation":"15639:3:169","nodeType":"VariableDeclaration","scope":83175,"src":"15631:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83169,"name":"uint256","nodeType":"ElementaryTypeName","src":"15631:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83172,"mutability":"mutable","name":"election","nameLocation":"15660:8:169","nodeType":"VariableDeclaration","scope":83175,"src":"15652:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83171,"name":"uint256","nodeType":"ElementaryTypeName","src":"15652:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83174,"mutability":"mutable","name":"validationDelay","nameLocation":"15686:15:169","nodeType":"VariableDeclaration","scope":83175,"src":"15678:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83173,"name":"uint256","nodeType":"ElementaryTypeName","src":"15678:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"15611:9:169","scope":84099,"visibility":"public"},{"id":83187,"nodeType":"StructDefinition","src":"15778:171:169","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":83176,"nodeType":"StructuredDocumentation","src":"15714:59:169","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":83178,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15822:18:169","nodeType":"VariableDeclaration","scope":83187,"src":"15814:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83177,"name":"uint128","nodeType":"ElementaryTypeName","src":"15814:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83180,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15858:20:169","nodeType":"VariableDeclaration","scope":83187,"src":"15850:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83179,"name":"uint128","nodeType":"ElementaryTypeName","src":"15850:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83183,"mutability":"mutable","name":"validators0","nameLocation":"15899:11:169","nodeType":"VariableDeclaration","scope":83187,"src":"15888:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83182,"nodeType":"UserDefinedTypeName","pathNode":{"id":83181,"name":"Validators","nameLocations":["15888:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"15888:10:169"},"referencedDeclaration":82928,"src":"15888:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":83186,"mutability":"mutable","name":"validators1","nameLocation":"15931:11:169","nodeType":"VariableDeclaration","scope":83187,"src":"15920:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83185,"nodeType":"UserDefinedTypeName","pathNode":{"id":83184,"name":"Validators","nameLocations":["15920:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"15920:10:169"},"referencedDeclaration":82928,"src":"15920:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"15785:18:169","scope":84099,"visibility":"public"},{"id":83199,"nodeType":"StructDefinition","src":"16027:183:169","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":83188,"nodeType":"StructuredDocumentation","src":"15955:67:169","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":83190,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16075:18:169","nodeType":"VariableDeclaration","scope":83199,"src":"16067:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83189,"name":"uint128","nodeType":"ElementaryTypeName","src":"16067:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83192,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16111:20:169","nodeType":"VariableDeclaration","scope":83199,"src":"16103:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83191,"name":"uint128","nodeType":"ElementaryTypeName","src":"16103:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83195,"mutability":"mutable","name":"validators0","nameLocation":"16156:11:169","nodeType":"VariableDeclaration","scope":83199,"src":"16141:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83194,"nodeType":"UserDefinedTypeName","pathNode":{"id":83193,"name":"ValidatorsView","nameLocations":["16141:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"16141:14:169"},"referencedDeclaration":82940,"src":"16141:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":83198,"mutability":"mutable","name":"validators1","nameLocation":"16192:11:169","nodeType":"VariableDeclaration","scope":83199,"src":"16177:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83197,"nodeType":"UserDefinedTypeName","pathNode":{"id":83196,"name":"ValidatorsView","nameLocations":["16177:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"16177:14:169"},"referencedDeclaration":82940,"src":"16177:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"16034:22:169","scope":84099,"visibility":"public"},{"id":83207,"nodeType":"StructDefinition","src":"16272:104:169","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":83200,"nodeType":"StructuredDocumentation","src":"16216:51:169","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":83202,"mutability":"mutable","name":"messageId","nameLocation":"16308:9:169","nodeType":"VariableDeclaration","scope":83207,"src":"16300:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16300:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83204,"mutability":"mutable","name":"destination","nameLocation":"16335:11:169","nodeType":"VariableDeclaration","scope":83207,"src":"16327:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83203,"name":"address","nodeType":"ElementaryTypeName","src":"16327:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83206,"mutability":"mutable","name":"value","nameLocation":"16364:5:169","nodeType":"VariableDeclaration","scope":83207,"src":"16356:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83205,"name":"uint128","nodeType":"ElementaryTypeName","src":"16356:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"16279:10:169","scope":84099,"visibility":"public"},{"id":83229,"nodeType":"StructDefinition","src":"16456:436:169","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":83208,"nodeType":"StructuredDocumentation","src":"16382:69:169","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":83210,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16532:13:169","nodeType":"VariableDeclaration","scope":83229,"src":"16524:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83209,"name":"address","nodeType":"ElementaryTypeName","src":"16524:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83212,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16563:16:169","nodeType":"VariableDeclaration","scope":83229,"src":"16555:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83211,"name":"address","nodeType":"ElementaryTypeName","src":"16555:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83214,"mutability":"mutable","name":"networkRegistry","nameLocation":"16597:15:169","nodeType":"VariableDeclaration","scope":83229,"src":"16589:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83213,"name":"address","nodeType":"ElementaryTypeName","src":"16589:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83216,"mutability":"mutable","name":"middlewareService","nameLocation":"16630:17:169","nodeType":"VariableDeclaration","scope":83229,"src":"16622:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83215,"name":"address","nodeType":"ElementaryTypeName","src":"16622:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83218,"mutability":"mutable","name":"networkOptIn","nameLocation":"16665:12:169","nodeType":"VariableDeclaration","scope":83229,"src":"16657:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83217,"name":"address","nodeType":"ElementaryTypeName","src":"16657:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83220,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"16695:20:169","nodeType":"VariableDeclaration","scope":83229,"src":"16687:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83219,"name":"address","nodeType":"ElementaryTypeName","src":"16687:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83222,"mutability":"mutable","name":"operatorRewards","nameLocation":"16769:15:169","nodeType":"VariableDeclaration","scope":83229,"src":"16761:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83221,"name":"address","nodeType":"ElementaryTypeName","src":"16761:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83224,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"16802:18:169","nodeType":"VariableDeclaration","scope":83229,"src":"16794:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83223,"name":"address","nodeType":"ElementaryTypeName","src":"16794:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83226,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"16838:17:169","nodeType":"VariableDeclaration","scope":83229,"src":"16830:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83225,"name":"address","nodeType":"ElementaryTypeName","src":"16830:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83228,"mutability":"mutable","name":"vetoResolver","nameLocation":"16873:12:169","nodeType":"VariableDeclaration","scope":83229,"src":"16865:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83227,"name":"address","nodeType":"ElementaryTypeName","src":"16865:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16463:18:169","scope":84099,"visibility":"public"},{"id":83233,"nodeType":"EnumDefinition","src":"16965:55:169","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":83230,"nodeType":"StructuredDocumentation","src":"16898:62:169","text":" @dev Represents the type of signature used."},"members":[{"id":83231,"name":"FROST","nameLocation":"16994:5:169","nodeType":"EnumValue","src":"16994:5:169"},{"id":83232,"name":"ECDSA","nameLocation":"17009:5:169","nodeType":"EnumValue","src":"17009:5:169"}],"name":"SignatureType","nameLocation":"16970:13:169"},{"id":83255,"nodeType":"FunctionDefinition","src":"17310:260:169","nodes":[],"body":{"id":83254,"nodeType":"Block","src":"17471:99:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83248,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83236,"src":"17515:16:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83249,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83238,"src":"17533:5:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83250,"name":"_lastAdvancedEthBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83240,"src":"17540:21:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17498:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17502:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"17498:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17498:64:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83245,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17488:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17488:75:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83244,"id":83253,"nodeType":"Return","src":"17481:82:169"}]},"documentation":{"id":83234,"nodeType":"StructuredDocumentation","src":"17026:279:169","text":" @dev Computes the hash of `ChainCommitment`.\n @param _transitionsHash The hash of the transitions in the chain commitment.\n @param _head The head of the chain commitment.\n @param _lastAdvancedEthBlock The latest folded-in Ethereum block hash."},"implemented":true,"kind":"function","modifiers":[],"name":"chainCommitmentHash","nameLocation":"17319:19:169","parameters":{"id":83241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83236,"mutability":"mutable","name":"_transitionsHash","nameLocation":"17347:16:169","nodeType":"VariableDeclaration","scope":83255,"src":"17339:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17339:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83238,"mutability":"mutable","name":"_head","nameLocation":"17373:5:169","nodeType":"VariableDeclaration","scope":83255,"src":"17365:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17365:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83240,"mutability":"mutable","name":"_lastAdvancedEthBlock","nameLocation":"17388:21:169","nodeType":"VariableDeclaration","scope":83255,"src":"17380:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17380:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17338:72:169"},"returnParameters":{"id":83244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83255,"src":"17458:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17458:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17457:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83272,"nodeType":"FunctionDefinition","src":"17739:336:169","nodes":[],"body":{"id":83271,"nodeType":"Block","src":"17827:248:169","nodes":[],"statements":[{"assignments":[83266],"declarations":[{"constant":false,"id":83266,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"17845:19:169","nodeType":"VariableDeclaration","scope":83271,"src":"17837:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17837:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83267,"nodeType":"VariableDeclarationStatement","src":"17837:27:169"},{"AST":{"nativeSrc":"17899:134:169","nodeType":"YulBlock","src":"17899:134:169","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"17920:4:169","nodeType":"YulLiteral","src":"17920:4:169","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"17926:6:169","nodeType":"YulIdentifier","src":"17926:6:169"}],"functionName":{"name":"mstore","nativeSrc":"17913:6:169","nodeType":"YulIdentifier","src":"17913:6:169"},"nativeSrc":"17913:20:169","nodeType":"YulFunctionCall","src":"17913:20:169"},"nativeSrc":"17913:20:169","nodeType":"YulExpressionStatement","src":"17913:20:169"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17954:4:169","nodeType":"YulLiteral","src":"17954:4:169","type":"","value":"0x20"},{"name":"valid","nativeSrc":"17960:5:169","nodeType":"YulIdentifier","src":"17960:5:169"}],"functionName":{"name":"mstore8","nativeSrc":"17946:7:169","nodeType":"YulIdentifier","src":"17946:7:169"},"nativeSrc":"17946:20:169","nodeType":"YulFunctionCall","src":"17946:20:169"},"nativeSrc":"17946:20:169","nodeType":"YulExpressionStatement","src":"17946:20:169"},{"nativeSrc":"17979:44:169","nodeType":"YulAssignment","src":"17979:44:169","value":{"arguments":[{"kind":"number","nativeSrc":"18012:4:169","nodeType":"YulLiteral","src":"18012:4:169","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18018:4:169","nodeType":"YulLiteral","src":"18018:4:169","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"18002:9:169","nodeType":"YulIdentifier","src":"18002:9:169"},"nativeSrc":"18002:21:169","nodeType":"YulFunctionCall","src":"18002:21:169"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"17979:19:169","nodeType":"YulIdentifier","src":"17979:19:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83266,"isOffset":false,"isSlot":false,"src":"17979:19:169","valueSize":1},{"declaration":83258,"isOffset":false,"isSlot":false,"src":"17926:6:169","valueSize":1},{"declaration":83260,"isOffset":false,"isSlot":false,"src":"17960:5:169","valueSize":1}],"flags":["memory-safe"],"id":83268,"nodeType":"InlineAssembly","src":"17874:159:169"},{"expression":{"id":83269,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83266,"src":"18049:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83264,"id":83270,"nodeType":"Return","src":"18042:26:169"}]},"documentation":{"id":83256,"nodeType":"StructuredDocumentation","src":"17576:158:169","text":" @dev Computes the hash of `CodeCommitment`.\n @param codeId The ID of the code.\n @param valid The validation status of the code."},"implemented":true,"kind":"function","modifiers":[],"name":"codeCommitmentHash","nameLocation":"17748:18:169","parameters":{"id":83261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83258,"mutability":"mutable","name":"codeId","nameLocation":"17775:6:169","nodeType":"VariableDeclaration","scope":83272,"src":"17767:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17767:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83260,"mutability":"mutable","name":"valid","nameLocation":"17788:5:169","nodeType":"VariableDeclaration","scope":83272,"src":"17783:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83259,"name":"bool","nodeType":"ElementaryTypeName","src":"17783:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17766:28:169"},"returnParameters":{"id":83264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83272,"src":"17818:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17818:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17817:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83294,"nodeType":"FunctionDefinition","src":"18352:273:169","nodes":[],"body":{"id":83293,"nodeType":"Block","src":"18520:105:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83287,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83275,"src":"18564:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83288,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83277,"src":"18586:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83289,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83279,"src":"18606:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18547:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18551:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18547:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18547:70:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83284,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18537:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18537:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83283,"id":83292,"nodeType":"Return","src":"18530:88:169"}]},"documentation":{"id":83273,"nodeType":"StructuredDocumentation","src":"18081:266:169","text":" @dev Computes the hash of `RewardsCommitment`.\n @param _operatorRewardsHash The hash of the operator rewards.\n @param _stakerRewardsHash The hash of the staker rewards.\n @param _timestamp The timestamp for the rewards commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"rewardsCommitmentHash","nameLocation":"18361:21:169","parameters":{"id":83280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83275,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"18391:20:169","nodeType":"VariableDeclaration","scope":83294,"src":"18383:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18383:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83277,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"18421:18:169","nodeType":"VariableDeclaration","scope":83294,"src":"18413:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18413:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83279,"mutability":"mutable","name":"_timestamp","nameLocation":"18448:10:169","nodeType":"VariableDeclaration","scope":83294,"src":"18441:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83278,"name":"uint48","nodeType":"ElementaryTypeName","src":"18441:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"18382:77:169"},"returnParameters":{"id":83283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83294,"src":"18507:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18507:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18506:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83322,"nodeType":"FunctionDefinition","src":"18756:425:169","nodes":[],"body":{"id":83321,"nodeType":"Block","src":"18867:314:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83306,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"18941:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18952:22:169","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82975,"src":"18941:33:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":83308,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"18992:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19003:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"18992:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19023:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"18992:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83311,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19042:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19053:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"19042:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19073:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"19042:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":83314,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19092:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19103:10:169","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"19092:21:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":83316,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83298,"src":"19131:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19142:8:169","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"19131:19:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83304,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18907:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18911:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18907:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18907:257:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83303,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18884:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18884:290:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83302,"id":83320,"nodeType":"Return","src":"18877:297:169"}]},"documentation":{"id":83295,"nodeType":"StructuredDocumentation","src":"18631:120:169","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"18765:24:169","parameters":{"id":83299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83298,"mutability":"mutable","name":"commitment","nameLocation":"18823:10:169","nodeType":"VariableDeclaration","scope":83322,"src":"18790:43:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":83297,"nodeType":"UserDefinedTypeName","pathNode":{"id":83296,"name":"Gear.ValidatorsCommitment","nameLocations":["18790:4:169","18795:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"18790:25:169"},"referencedDeclaration":82986,"src":"18790:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"18789:45:169"},"returnParameters":{"id":83302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83322,"src":"18858:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18858:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18857:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83359,"nodeType":"FunctionDefinition","src":"19794:697:169","nodes":[],"body":{"id":83358,"nodeType":"Block","src":"20131:360:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83347,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83325,"src":"20205:6:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83348,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83327,"src":"20229:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":83349,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83329,"src":"20257:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83350,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83331,"src":"20294:7:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83351,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83333,"src":"20319:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83352,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83335,"src":"20357:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83353,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83337,"src":"20395:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83354,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83339,"src":"20435:25:169","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20171:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20175:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20171:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20171:303:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83344,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20148:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20148:336:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83343,"id":83357,"nodeType":"Return","src":"20141:343:169"}]},"documentation":{"id":83323,"nodeType":"StructuredDocumentation","src":"19187:602:169","text":" @dev Computes the hash of `BatchCommitment`.\n @param _block The hash of the block.\n @param _timestamp The timestamp for the batch commitment.\n @param _prevCommittedBlock The hash of the previous committed block.\n @param _expiry The expiry time for the batch commitment.\n @param _chainCommitmentHash The hash of the chain commitment.\n @param _codeCommitmentsHash The hash of the code commitments.\n @param _rewardsCommitmentHash The hash of the rewards commitment.\n @param _validatorsCommitmentHash The hash of the validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"batchCommitmentHash","nameLocation":"19803:19:169","parameters":{"id":83340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83325,"mutability":"mutable","name":"_block","nameLocation":"19840:6:169","nodeType":"VariableDeclaration","scope":83359,"src":"19832:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19832:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83327,"mutability":"mutable","name":"_timestamp","nameLocation":"19863:10:169","nodeType":"VariableDeclaration","scope":83359,"src":"19856:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83326,"name":"uint48","nodeType":"ElementaryTypeName","src":"19856:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83329,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"19891:19:169","nodeType":"VariableDeclaration","scope":83359,"src":"19883:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19883:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83331,"mutability":"mutable","name":"_expiry","nameLocation":"19926:7:169","nodeType":"VariableDeclaration","scope":83359,"src":"19920:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83330,"name":"uint8","nodeType":"ElementaryTypeName","src":"19920:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83333,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"19951:20:169","nodeType":"VariableDeclaration","scope":83359,"src":"19943:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19943:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83335,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"19989:20:169","nodeType":"VariableDeclaration","scope":83359,"src":"19981:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19981:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83337,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"20027:22:169","nodeType":"VariableDeclaration","scope":83359,"src":"20019:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20019:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83339,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"20067:25:169","nodeType":"VariableDeclaration","scope":83359,"src":"20059:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20059:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19822:276:169"},"returnParameters":{"id":83343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83359,"src":"20122:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20122:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20121:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83391,"nodeType":"FunctionDefinition","src":"20622:407:169","nodes":[],"body":{"id":83390,"nodeType":"Block","src":"20699:330:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83371,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20773:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20781:2:169","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"20773:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83373,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20801:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20809:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"20801:19:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":83375,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20838:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20846:7:169","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"20838:15:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":83377,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20871:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20879:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"20871:13:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83379,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20902:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20910:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"20902:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20923:2:169","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"20902:23:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":83382,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20943:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20951:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"20943:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20964:4:169","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"20943:25:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":83385,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83363,"src":"20986:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20994:4:169","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"20986:12:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":83369,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20739:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20743:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20739:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20739:273:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83368,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20716:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20716:306:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83367,"id":83389,"nodeType":"Return","src":"20709:313:169"}]},"documentation":{"id":83360,"nodeType":"StructuredDocumentation","src":"20497:120:169","text":" @dev Computes the hash of `Message`.\n @param message The message for which to compute the hash."},"implemented":true,"kind":"function","modifiers":[],"name":"messageHash","nameLocation":"20631:11:169","parameters":{"id":83364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83363,"mutability":"mutable","name":"message","nameLocation":"20658:7:169","nodeType":"VariableDeclaration","scope":83391,"src":"20643:22:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":83362,"nodeType":"UserDefinedTypeName","pathNode":{"id":83361,"name":"Message","nameLocations":["20643:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"20643:7:169"},"referencedDeclaration":83101,"src":"20643:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"20642:24:169"},"returnParameters":{"id":83367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83391,"src":"20690:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20690:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20689:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83413,"nodeType":"FunctionDefinition","src":"21236:199:169","nodes":[],"body":{"id":83412,"nodeType":"Block","src":"21350:85:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83406,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83394,"src":"21394:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83407,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83396,"src":"21406:12:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83408,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83398,"src":"21420:6:169","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":83404,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21377:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83405,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21381:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"21377:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21377:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83403,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21367:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21367:61:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83402,"id":83411,"nodeType":"Return","src":"21360:68:169"}]},"documentation":{"id":83392,"nodeType":"StructuredDocumentation","src":"21035:196:169","text":" @dev Computes the hash of `ValueClaim`.\n @param _messageId The message ID.\n @param _destination The destination address.\n @param _value The value of the claim."},"implemented":true,"kind":"function","modifiers":[],"name":"valueClaimHash","nameLocation":"21245:14:169","parameters":{"id":83399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83394,"mutability":"mutable","name":"_messageId","nameLocation":"21268:10:169","nodeType":"VariableDeclaration","scope":83413,"src":"21260:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21260:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83396,"mutability":"mutable","name":"_destination","nameLocation":"21288:12:169","nodeType":"VariableDeclaration","scope":83413,"src":"21280:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83395,"name":"address","nodeType":"ElementaryTypeName","src":"21280:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83398,"mutability":"mutable","name":"_value","nameLocation":"21310:6:169","nodeType":"VariableDeclaration","scope":83413,"src":"21302:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83397,"name":"uint128","nodeType":"ElementaryTypeName","src":"21302:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21259:58:169"},"returnParameters":{"id":83402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83413,"src":"21341:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21341:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21340:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83450,"nodeType":"FunctionDefinition","src":"21939:646:169","nodes":[],"body":{"id":83449,"nodeType":"Block","src":"22249:336:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83438,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83416,"src":"22323:5:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83439,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83418,"src":"22346:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83440,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83420,"src":"22376:6:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83441,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83422,"src":"22400:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83442,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83424,"src":"22427:14:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83443,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83426,"src":"22459:26:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83444,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83428,"src":"22503:15:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83445,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83430,"src":"22536:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22289:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22293:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"22289:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22289:279:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83435,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"22266:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22266:312:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83434,"id":83448,"nodeType":"Return","src":"22259:319:169"}]},"documentation":{"id":83414,"nodeType":"StructuredDocumentation","src":"21441:493:169","text":" @dev Computes the hash of `StateTransition`.\n @param actor The actor address.\n @param newStateHash The hash of the new state.\n @param exited The exit status.\n @param inheritor The inheritor address.\n @param valueToReceive The value to receive.\n @param valueToReceiveNegativeSign The sign of the value to receive.\n @param valueClaimsHash The hash of the value claims.\n @param messagesHashesHash The hash of the messages hashes."},"implemented":true,"kind":"function","modifiers":[],"name":"stateTransitionHash","nameLocation":"21948:19:169","parameters":{"id":83431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83416,"mutability":"mutable","name":"actor","nameLocation":"21985:5:169","nodeType":"VariableDeclaration","scope":83450,"src":"21977:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83415,"name":"address","nodeType":"ElementaryTypeName","src":"21977:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83418,"mutability":"mutable","name":"newStateHash","nameLocation":"22008:12:169","nodeType":"VariableDeclaration","scope":83450,"src":"22000:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22000:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83420,"mutability":"mutable","name":"exited","nameLocation":"22035:6:169","nodeType":"VariableDeclaration","scope":83450,"src":"22030:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83419,"name":"bool","nodeType":"ElementaryTypeName","src":"22030:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83422,"mutability":"mutable","name":"inheritor","nameLocation":"22059:9:169","nodeType":"VariableDeclaration","scope":83450,"src":"22051:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83421,"name":"address","nodeType":"ElementaryTypeName","src":"22051:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83424,"mutability":"mutable","name":"valueToReceive","nameLocation":"22086:14:169","nodeType":"VariableDeclaration","scope":83450,"src":"22078:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83423,"name":"uint128","nodeType":"ElementaryTypeName","src":"22078:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83426,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"22115:26:169","nodeType":"VariableDeclaration","scope":83450,"src":"22110:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83425,"name":"bool","nodeType":"ElementaryTypeName","src":"22110:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83428,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"22159:15:169","nodeType":"VariableDeclaration","scope":83450,"src":"22151:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22151:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83430,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"22192:18:169","nodeType":"VariableDeclaration","scope":83450,"src":"22184:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22184:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21967:249:169"},"returnParameters":{"id":83434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83450,"src":"22240:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22240:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22239:9:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83515,"nodeType":"FunctionDefinition","src":"22859:532:169","nodes":[],"body":{"id":83514,"nodeType":"Block","src":"22958:433:169","nodes":[],"statements":[{"assignments":[83461],"declarations":[{"constant":false,"id":83461,"mutability":"mutable","name":"start","nameLocation":"22976:5:169","nodeType":"VariableDeclaration","scope":83514,"src":"22968:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83460,"name":"uint256","nodeType":"ElementaryTypeName","src":"22968:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83466,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83462,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"22984:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22990:6:169","memberName":"number","nodeType":"MemberAccess","src":"22984:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":83464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22999:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22984:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22968:32:169"},{"assignments":[83468],"declarations":[{"constant":false,"id":83468,"mutability":"mutable","name":"end","nameLocation":"23018:3:169","nodeType":"VariableDeclaration","scope":83514,"src":"23010:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83467,"name":"uint256","nodeType":"ElementaryTypeName","src":"23010:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83479,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83469,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"23024:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":83470,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23034:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23040:6:169","memberName":"number","nodeType":"MemberAccess","src":"23034:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23024:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83474,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23053:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23059:6:169","memberName":"number","nodeType":"MemberAccess","src":"23053:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83476,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"23068:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"23053:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23024:50:169","trueExpression":{"hexValue":"30","id":83473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23049:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23010:64:169"},{"body":{"id":83510,"nodeType":"Block","src":"23119:243:169","statements":[{"assignments":[83488],"declarations":[{"constant":false,"id":83488,"mutability":"mutable","name":"ret","nameLocation":"23141:3:169","nodeType":"VariableDeclaration","scope":83510,"src":"23133:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23133:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83492,"initialValue":{"arguments":[{"id":83490,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23157:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83489,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"23147:9:169","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23147:12:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23133:26:169"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83493,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83488,"src":"23177:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83494,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83453,"src":"23184:4:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23177:11:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83499,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83488,"src":"23244:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23251:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23244:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83504,"nodeType":"IfStatement","src":"23240:52:169","trueBody":{"id":83503,"nodeType":"Block","src":"23254:38:169","statements":[{"id":83502,"nodeType":"Break","src":"23272:5:169"}]}},"id":83505,"nodeType":"IfStatement","src":"23173:119:169","trueBody":{"id":83498,"nodeType":"Block","src":"23190:44:169","statements":[{"expression":{"hexValue":"74727565","id":83496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23215:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83459,"id":83497,"nodeType":"Return","src":"23208:11:169"}]}},{"id":83509,"nodeType":"UncheckedBlock","src":"23306:46:169","statements":[{"expression":{"id":83507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"23334:3:169","subExpression":{"id":83506,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23334:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83508,"nodeType":"ExpressionStatement","src":"23334:3:169"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83481,"src":"23108:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83485,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83468,"src":"23113:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23108:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83511,"initializationExpression":{"assignments":[83481],"declarations":[{"constant":false,"id":83481,"mutability":"mutable","name":"i","nameLocation":"23097:1:169","nodeType":"VariableDeclaration","scope":83511,"src":"23089:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83480,"name":"uint256","nodeType":"ElementaryTypeName","src":"23089:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83483,"initialValue":{"id":83482,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83461,"src":"23101:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23089:17:169"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"23084:278:169"},{"expression":{"hexValue":"66616c7365","id":83512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23379:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83459,"id":83513,"nodeType":"Return","src":"23372:12:169"}]},"documentation":{"id":83451,"nodeType":"StructuredDocumentation","src":"22591:263:169","text":" @dev Checks if block is predecessor of the current block.\n @param hash The hash of the block to check.\n @param expiry The expiry time for the block.\n @return isPredecessor `true` if the block is predecessor, `false` otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"blockIsPredecessor","nameLocation":"22868:18:169","parameters":{"id":83456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83453,"mutability":"mutable","name":"hash","nameLocation":"22895:4:169","nodeType":"VariableDeclaration","scope":83515,"src":"22887:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22887:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83455,"mutability":"mutable","name":"expiry","nameLocation":"22907:6:169","nodeType":"VariableDeclaration","scope":83515,"src":"22901:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83454,"name":"uint8","nodeType":"ElementaryTypeName","src":"22901:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"22886:28:169"},"returnParameters":{"id":83459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83458,"mutability":"mutable","name":"isPredecessor","nameLocation":"22943:13:169","nodeType":"VariableDeclaration","scope":83515,"src":"22938:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83457,"name":"bool","nodeType":"ElementaryTypeName","src":"22938:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22937:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83528,"nodeType":"FunctionDefinition","src":"23536:222:169","nodes":[],"body":{"id":83527,"nodeType":"Block","src":"23645:113:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83523,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82868,"src":"23694:21:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":83524,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82880,"src":"23733:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83522,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83072,"src":"23662:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$83072_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":83525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23683:9:169","23717:14:169"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"23662:89:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":83521,"id":83526,"nodeType":"Return","src":"23655:96:169"}]},"documentation":{"id":83516,"nodeType":"StructuredDocumentation","src":"23397:134:169","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"23545:26:169","parameters":{"id":83517,"nodeType":"ParameterList","parameters":[],"src":"23571:2:169"},"returnParameters":{"id":83521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83520,"mutability":"mutable","name":"computationSettings","nameLocation":"23624:19:169","nodeType":"VariableDeclaration","scope":83528,"src":"23597:46:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83519,"nodeType":"UserDefinedTypeName","pathNode":{"id":83518,"name":"ComputationSettings","nameLocations":["23597:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83072,"src":"23597:19:169"},"referencedDeclaration":83072,"src":"23597:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"23596:48:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83551,"nodeType":"FunctionDefinition","src":"23884:229:169","nodes":[],"body":{"id":83550,"nodeType":"Block","src":"23971:142:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":83538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24032:1:169","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":83537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24024:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24024:7:169","typeDescriptions":{}}},"id":83539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24024:10:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":83542,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24062:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24068:6:169","memberName":"number","nodeType":"MemberAccess","src":"24062:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83540,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"24044:8:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$55635_$","typeString":"type(library SafeCast)"}},"id":83541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24053:8:169","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":54681,"src":"24044:17:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":83544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24044:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83545,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"24088:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":83546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24093:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"24088:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":83547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24088:16:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":83535,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83080,"src":"24000:16:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$83080_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":83548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24018:4:169","24036:6:169","24077:9:169"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"24000:106:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":83534,"id":83549,"nodeType":"Return","src":"23981:125:169"}]},"documentation":{"id":83529,"nodeType":"StructuredDocumentation","src":"23764:115:169","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"23893:10:169","parameters":{"id":83530,"nodeType":"ParameterList","parameters":[],"src":"23903:2:169"},"returnParameters":{"id":83534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83533,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"23953:16:169","nodeType":"VariableDeclaration","scope":83551,"src":"23929:40:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":83532,"nodeType":"UserDefinedTypeName","pathNode":{"id":83531,"name":"GenesisBlockInfo","nameLocations":["23929:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":83080,"src":"23929:16:169"},"referencedDeclaration":83080,"src":"23929:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"23928:42:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83801,"nodeType":"FunctionDefinition","src":"24604:3813:169","nodes":[],"body":{"id":83800,"nodeType":"Block","src":"24867:3550:169","nodes":[],"statements":[{"assignments":[83573],"declarations":[{"constant":false,"id":83573,"mutability":"mutable","name":"eraStarted","nameLocation":"24939:10:169","nodeType":"VariableDeclaration","scope":83800,"src":"24931:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83572,"name":"uint256","nodeType":"ElementaryTypeName","src":"24931:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83579,"initialValue":{"arguments":[{"id":83575,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"24965:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83576,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24973:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24979:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"24973:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83574,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84034,"src":"24952:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":83578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24952:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24931:58:169"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83580,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25003:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83581,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25008:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25003:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83583,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25022:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25028:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25022:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83585,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25040:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83586,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25053:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25060:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"25053:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25070:15:169","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":83174,"src":"25053:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25040:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25022:63:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25003:82:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83633,"nodeType":"Block","src":"25446:229:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83616,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25468:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83617,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25474:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25480:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25474:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25468:21:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83620,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82889,"src":"25491:17:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25491:19:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83615,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25460:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25460:51:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83623,"nodeType":"ExpressionStatement","src":"25460:51:169"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83624,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25530:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83625,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25535:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25530:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83632,"nodeType":"IfStatement","src":"25526:69:169","trueBody":{"id":83631,"nodeType":"Block","src":"25547:48:169","statements":[{"expression":{"id":83629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83627,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25565:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83628,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25570:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25565:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83630,"nodeType":"ExpressionStatement","src":"25565:15:169"}]}}]},"id":83634,"nodeType":"IfStatement","src":"24999:676:169","trueBody":{"id":83614,"nodeType":"Block","src":"25087:353:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83593,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25109:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":83594,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25115:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25122:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"25115:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25135:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"25115:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"25109:35:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83598,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82883,"src":"25146:23:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25146:25:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25101:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25101:71:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83601,"nodeType":"ExpressionStatement","src":"25101:71:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83603,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25194:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83604,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25199:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25206:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"25199:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25216:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"25199:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25194:25:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83608,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83573,"src":"25223:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25194:39:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83610,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82886,"src":"25235:29:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25235:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83602,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25186:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25186:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83613,"nodeType":"ExpressionStatement","src":"25186:81:169"}]}},{"assignments":[83637],"declarations":[{"constant":false,"id":83637,"mutability":"mutable","name":"validators","nameLocation":"25756:10:169","nodeType":"VariableDeclaration","scope":83800,"src":"25737:29:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83636,"nodeType":"UserDefinedTypeName","pathNode":{"id":83635,"name":"Validators","nameLocations":["25737:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"25737:10:169"},"referencedDeclaration":82928,"src":"25737:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":83642,"initialValue":{"arguments":[{"id":83639,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"25782:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83640,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83567,"src":"25790:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83638,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83873,"src":"25769:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25769:24:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25737:56:169"},{"assignments":[83644],"declarations":[{"constant":false,"id":83644,"mutability":"mutable","name":"_messageHash","nameLocation":"25811:12:169","nodeType":"VariableDeclaration","scope":83800,"src":"25803:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25803:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83652,"initialValue":{"arguments":[{"id":83650,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83559,"src":"25872:9:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":83647,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"25834:4:169","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$84099","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$84099","typeString":"library Gear"}],"id":83646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25826:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83645,"name":"address","nodeType":"ElementaryTypeName","src":"25826:7:169","typeDescriptions":{}}},"id":83648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25826:13:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25840:31:169","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":52224,"src":"25826:45:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":83651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25826:56:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25803:79:169"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"id":83656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83653,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"25897:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83654,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83233,"src":"25915:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83233_$","typeString":"type(enum Gear.SignatureType)"}},"id":83655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25929:5:169","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":83231,"src":"25915:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"src":"25897:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"id":83709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83706,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"27093:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83707,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83233,"src":"27111:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83233_$","typeString":"type(enum Gear.SignatureType)"}},"id":83708,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27125:5:169","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":83232,"src":"27111:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"src":"27093:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83796,"nodeType":"IfStatement","src":"27089:1299:169","trueBody":{"id":83795,"nodeType":"Block","src":"27132:1256:169","statements":[{"assignments":[83711],"declarations":[{"constant":false,"id":83711,"mutability":"mutable","name":"threshold","nameLocation":"27154:9:169","nodeType":"VariableDeclaration","scope":83795,"src":"27146:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83710,"name":"uint256","nodeType":"ElementaryTypeName","src":"27146:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83723,"initialValue":{"arguments":[{"expression":{"expression":{"id":83713,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"27203:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27214:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"27203:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":83715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27219:6:169","memberName":"length","nodeType":"MemberAccess","src":"27203:22:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83716,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"27243:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27250:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"27243:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27269:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"27243:44:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83719,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83555,"src":"27305:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83720,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27312:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"27305:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27331:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"27305:46:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83712,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83986,"src":"27166:19:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":83722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27166:199:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27146:219:169"},{"assignments":[83725],"declarations":[{"constant":false,"id":83725,"mutability":"mutable","name":"validSignatures","nameLocation":"27388:15:169","nodeType":"VariableDeclaration","scope":83795,"src":"27380:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83724,"name":"uint256","nodeType":"ElementaryTypeName","src":"27380:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83727,"initialValue":{"hexValue":"30","id":83726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27406:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27380:27:169"},{"body":{"id":83791,"nodeType":"Block","src":"27471:880:169","statements":[{"assignments":[83740],"declarations":[{"constant":false,"id":83740,"mutability":"mutable","name":"signature","nameLocation":"27504:9:169","nodeType":"VariableDeclaration","scope":83791,"src":"27489:24:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":83739,"name":"bytes","nodeType":"ElementaryTypeName","src":"27489:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83744,"initialValue":{"baseExpression":{"id":83741,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"27516:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83743,"indexExpression":{"id":83742,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27528:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27516:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27489:41:169"},{"assignments":[83746],"declarations":[{"constant":false,"id":83746,"mutability":"mutable","name":"validator","nameLocation":"27557:9:169","nodeType":"VariableDeclaration","scope":83791,"src":"27549:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83745,"name":"address","nodeType":"ElementaryTypeName","src":"27549:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83751,"initialValue":{"arguments":[{"id":83749,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83740,"src":"27590:9:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":83747,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"27569:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27582:7:169","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50794,"src":"27569:20:169","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":83750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27569:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27549:51:169"},{"condition":{"baseExpression":{"expression":{"id":83752,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"27623:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27634:3:169","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"27623:14:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":83755,"indexExpression":{"id":83754,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83746,"src":"27638:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27623:25:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83790,"nodeType":"IfStatement","src":"27619:718:169","trueBody":{"id":83789,"nodeType":"Block","src":"27650:687:169","statements":[{"assignments":[83758],"declarations":[{"constant":false,"id":83758,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"27875:30:169","nodeType":"VariableDeclaration","scope":83789,"src":"27867:38:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27867:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev SECURITY:\n We use transient storage to prevent multiple signatures from the same validator.","id":83763,"initialValue":{"arguments":[{"id":83761,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83746,"src":"27945:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":83759,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83557,"src":"27908:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27931:13:169","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":48892,"src":"27908:36:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,address) pure returns (bytes32)"}},"id":83762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27908:47:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27867:88:169"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83764,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"27982:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28013:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"27982:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27982:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28025:5:169","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":50612,"src":"27982:48:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$50513_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":83768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27982:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83779,"nodeType":"Block","src":"28097:104:169","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":83776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28173:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83771,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83758,"src":"28123:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28154:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"28123:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28123:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28166:6:169","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":50623,"src":"28123:49:169","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$50513_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":83777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28123:55:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83778,"nodeType":"ExpressionStatement","src":"28123:55:169"}]},"id":83780,"nodeType":"IfStatement","src":"27978:223:169","trueBody":{"id":83770,"nodeType":"Block","src":"28034:57:169","statements":[{"id":83769,"nodeType":"Continue","src":"28060:8:169"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28227:17:169","subExpression":{"id":83781,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83725,"src":"28229:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83783,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83711,"src":"28248:9:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28227:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83788,"nodeType":"IfStatement","src":"28223:96:169","trueBody":{"id":83787,"nodeType":"Block","src":"28259:60:169","statements":[{"expression":{"hexValue":"74727565","id":83785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28292:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83571,"id":83786,"nodeType":"Return","src":"28285:11:169"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83732,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27442:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83733,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"27446:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27458:6:169","memberName":"length","nodeType":"MemberAccess","src":"27446:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27442:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83792,"initializationExpression":{"assignments":[83729],"declarations":[{"constant":false,"id":83729,"mutability":"mutable","name":"i","nameLocation":"27435:1:169","nodeType":"VariableDeclaration","scope":83792,"src":"27427:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83728,"name":"uint256","nodeType":"ElementaryTypeName","src":"27427:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83731,"initialValue":{"hexValue":"30","id":83730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27439:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27427:13:169"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27466:3:169","subExpression":{"id":83736,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83729,"src":"27466:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83738,"nodeType":"ExpressionStatement","src":"27466:3:169"},"nodeType":"ForStatement","src":"27422:929:169"},{"expression":{"hexValue":"66616c7365","id":83793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28372:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83571,"id":83794,"nodeType":"Return","src":"28365:12:169"}]}},"id":83797,"nodeType":"IfStatement","src":"25893:2495:169","trueBody":{"id":83705,"nodeType":"Block","src":"25936:1147:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83658,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"25958:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25970:6:169","memberName":"length","nodeType":"MemberAccess","src":"25958:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":83660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25980:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"25958:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83662,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82892,"src":"25983:26:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25983:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83657,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25950:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25950:62:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83665,"nodeType":"ExpressionStatement","src":"25950:62:169"},{"assignments":[83667],"declarations":[{"constant":false,"id":83667,"mutability":"mutable","name":"_signature","nameLocation":"26040:10:169","nodeType":"VariableDeclaration","scope":83705,"src":"26027:23:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":83666,"name":"bytes","nodeType":"ElementaryTypeName","src":"26027:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83671,"initialValue":{"baseExpression":{"id":83668,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83565,"src":"26053:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83670,"indexExpression":{"hexValue":"30","id":83669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26065:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26053:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26027:40:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83673,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83667,"src":"26089:10:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":83674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26100:6:169","memberName":"length","nodeType":"MemberAccess","src":"26089:17:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":83675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26110:2:169","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"26089:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83677,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82895,"src":"26114:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26114:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83672,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26081:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26081:63:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83680,"nodeType":"ExpressionStatement","src":"26081:63:169"},{"assignments":[83682],"declarations":[{"constant":false,"id":83682,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"26167:21:169","nodeType":"VariableDeclaration","scope":83705,"src":"26159:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83681,"name":"uint256","nodeType":"ElementaryTypeName","src":"26159:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83683,"nodeType":"VariableDeclarationStatement","src":"26159:29:169"},{"assignments":[83685],"declarations":[{"constant":false,"id":83685,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"26210:21:169","nodeType":"VariableDeclaration","scope":83705,"src":"26202:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83684,"name":"uint256","nodeType":"ElementaryTypeName","src":"26202:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83686,"nodeType":"VariableDeclarationStatement","src":"26202:29:169"},{"assignments":[83688],"declarations":[{"constant":false,"id":83688,"mutability":"mutable","name":"_signatureZ","nameLocation":"26253:11:169","nodeType":"VariableDeclaration","scope":83705,"src":"26245:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83687,"name":"uint256","nodeType":"ElementaryTypeName","src":"26245:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83689,"nodeType":"VariableDeclarationStatement","src":"26245:19:169"},{"AST":{"nativeSrc":"26304:215:169","nodeType":"YulBlock","src":"26304:215:169","statements":[{"nativeSrc":"26322:53:169","nodeType":"YulAssignment","src":"26322:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26357:10:169","nodeType":"YulIdentifier","src":"26357:10:169"},{"kind":"number","nativeSrc":"26369:4:169","nodeType":"YulLiteral","src":"26369:4:169","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26353:3:169","nodeType":"YulIdentifier","src":"26353:3:169"},"nativeSrc":"26353:21:169","nodeType":"YulFunctionCall","src":"26353:21:169"}],"functionName":{"name":"mload","nativeSrc":"26347:5:169","nodeType":"YulIdentifier","src":"26347:5:169"},"nativeSrc":"26347:28:169","nodeType":"YulFunctionCall","src":"26347:28:169"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"26322:21:169","nodeType":"YulIdentifier","src":"26322:21:169"}]},{"nativeSrc":"26392:53:169","nodeType":"YulAssignment","src":"26392:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26427:10:169","nodeType":"YulIdentifier","src":"26427:10:169"},{"kind":"number","nativeSrc":"26439:4:169","nodeType":"YulLiteral","src":"26439:4:169","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26423:3:169","nodeType":"YulIdentifier","src":"26423:3:169"},"nativeSrc":"26423:21:169","nodeType":"YulFunctionCall","src":"26423:21:169"}],"functionName":{"name":"mload","nativeSrc":"26417:5:169","nodeType":"YulIdentifier","src":"26417:5:169"},"nativeSrc":"26417:28:169","nodeType":"YulFunctionCall","src":"26417:28:169"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"26392:21:169","nodeType":"YulIdentifier","src":"26392:21:169"}]},{"nativeSrc":"26462:43:169","nodeType":"YulAssignment","src":"26462:43:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26487:10:169","nodeType":"YulIdentifier","src":"26487:10:169"},{"kind":"number","nativeSrc":"26499:4:169","nodeType":"YulLiteral","src":"26499:4:169","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26483:3:169","nodeType":"YulIdentifier","src":"26483:3:169"},"nativeSrc":"26483:21:169","nodeType":"YulFunctionCall","src":"26483:21:169"}],"functionName":{"name":"mload","nativeSrc":"26477:5:169","nodeType":"YulIdentifier","src":"26477:5:169"},"nativeSrc":"26477:28:169","nodeType":"YulFunctionCall","src":"26477:28:169"},"variableNames":[{"name":"_signatureZ","nativeSrc":"26462:11:169","nodeType":"YulIdentifier","src":"26462:11:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26357:10:169","valueSize":1},{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26427:10:169","valueSize":1},{"declaration":83667,"isOffset":false,"isSlot":false,"src":"26487:10:169","valueSize":1},{"declaration":83682,"isOffset":false,"isSlot":false,"src":"26322:21:169","valueSize":1},{"declaration":83685,"isOffset":false,"isSlot":false,"src":"26392:21:169","valueSize":1},{"declaration":83688,"isOffset":false,"isSlot":false,"src":"26462:11:169","valueSize":1}],"flags":["memory-safe"],"id":83690,"nodeType":"InlineAssembly","src":"26279:240:169"},{"documentation":" @dev SECURITY: `FROST.isValidPublicKey(validators.aggregatedPublicKey.x, validators.aggregatedPublicKey.y)` is not called here,\n because it is already checked in `Router._resetValidators(...)`.","expression":{"arguments":[{"expression":{"expression":{"id":83693,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"26839:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26850:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"26839:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26870:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"26839:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83696,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"26889:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26900:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"26889:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26920:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"26889:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83699,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83682,"src":"26939:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83700,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83685,"src":"26978:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83701,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"27017:11:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83702,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"27046:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83691,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"26800:5:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":83692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26806:15:169","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":40964,"src":"26800:21:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,bytes32) view returns (bool)"}},"id":83703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26800:272:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83571,"id":83704,"nodeType":"Return","src":"26793:279:169"}]}},{"expression":{"hexValue":"66616c7365","id":83798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28405:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83571,"id":83799,"nodeType":"Return","src":"28398:12:169"}]},"documentation":{"id":83552,"nodeType":"StructuredDocumentation","src":"24119:480:169","text":" @dev Validates signatures of the given data hash at the given timestamp.\n @param router The router storage.\n @param routerTransientStorage The router transient storage slot for this validation.\n @param _dataHash The hash of the data to validate signatures for.\n @param _signatureType The type of signatures to validate.\n @param _signatures The signatures to validate.\n @param ts The timestamp at which to validate signatures."},"implemented":true,"kind":"function","modifiers":[],"name":"validateSignaturesAt","nameLocation":"24613:20:169","parameters":{"id":83568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83555,"mutability":"mutable","name":"router","nameLocation":"24667:6:169","nodeType":"VariableDeclaration","scope":83801,"src":"24643:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83554,"nodeType":"UserDefinedTypeName","pathNode":{"id":83553,"name":"IRouter.Storage","nameLocations":["24643:7:169","24651:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"24643:15:169"},"referencedDeclaration":74490,"src":"24643:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83557,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"24691:22:169","nodeType":"VariableDeclaration","scope":83801,"src":"24683:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24683:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83559,"mutability":"mutable","name":"_dataHash","nameLocation":"24731:9:169","nodeType":"VariableDeclaration","scope":83801,"src":"24723:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24723:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83562,"mutability":"mutable","name":"_signatureType","nameLocation":"24764:14:169","nodeType":"VariableDeclaration","scope":83801,"src":"24750:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"typeName":{"id":83561,"nodeType":"UserDefinedTypeName","pathNode":{"id":83560,"name":"SignatureType","nameLocations":["24750:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83233,"src":"24750:13:169"},"referencedDeclaration":83233,"src":"24750:13:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83565,"mutability":"mutable","name":"_signatures","nameLocation":"24805:11:169","nodeType":"VariableDeclaration","scope":83801,"src":"24788:28:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83563,"name":"bytes","nodeType":"ElementaryTypeName","src":"24788:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83564,"nodeType":"ArrayTypeName","src":"24788:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":83567,"mutability":"mutable","name":"ts","nameLocation":"24834:2:169","nodeType":"VariableDeclaration","scope":83801,"src":"24826:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83566,"name":"uint256","nodeType":"ElementaryTypeName","src":"24826:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24633:209:169"},"returnParameters":{"id":83571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83801,"src":"24861:4:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83569,"name":"bool","nodeType":"ElementaryTypeName","src":"24861:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24860:6:169"},"scope":84099,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":83818,"nodeType":"FunctionDefinition","src":"28536:166:169","nodes":[],"body":{"id":83817,"nodeType":"Block","src":"28641:61:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83812,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83805,"src":"28671:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83813,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28679:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28685:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"28679:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83811,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83873,"src":"28658:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28658:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":83810,"id":83816,"nodeType":"Return","src":"28651:44:169"}]},"documentation":{"id":83802,"nodeType":"StructuredDocumentation","src":"28423:108:169","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"28545:20:169","parameters":{"id":83806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83805,"mutability":"mutable","name":"router","nameLocation":"28590:6:169","nodeType":"VariableDeclaration","scope":83818,"src":"28566:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83804,"nodeType":"UserDefinedTypeName","pathNode":{"id":83803,"name":"IRouter.Storage","nameLocations":["28566:7:169","28574:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28566:15:169"},"referencedDeclaration":74490,"src":"28566:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28565:32:169"},"returnParameters":{"id":83810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83818,"src":"28621:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83808,"nodeType":"UserDefinedTypeName","pathNode":{"id":83807,"name":"Validators","nameLocations":["28621:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"28621:10:169"},"referencedDeclaration":82928,"src":"28621:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28620:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83845,"nodeType":"FunctionDefinition","src":"28908:322:169","nodes":[],"body":{"id":83844,"nodeType":"Block","src":"29014:216:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83829,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29054:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83830,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29062:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29068:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"29062:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83828,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83940,"src":"29028:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":83832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29028:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83842,"nodeType":"Block","src":"29155:69:169","statements":[{"expression":{"expression":{"expression":{"id":83838,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29176:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29183:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29176:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29202:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"29176:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83827,"id":83841,"nodeType":"Return","src":"29169:44:169"}]},"id":83843,"nodeType":"IfStatement","src":"29024:200:169","trueBody":{"id":83837,"nodeType":"Block","src":"29080:69:169","statements":[{"expression":{"expression":{"expression":{"id":83833,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"29101:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29108:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29101:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29127:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"29101:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83827,"id":83836,"nodeType":"Return","src":"29094:44:169"}]}}]},"documentation":{"id":83819,"nodeType":"StructuredDocumentation","src":"28708:195:169","text":" @dev Returns previous era validators, if there is no previous era,\n then returns free validators slot, which must be zeroed.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"previousEraValidators","nameLocation":"28917:21:169","parameters":{"id":83823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83822,"mutability":"mutable","name":"router","nameLocation":"28963:6:169","nodeType":"VariableDeclaration","scope":83845,"src":"28939:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83821,"nodeType":"UserDefinedTypeName","pathNode":{"id":83820,"name":"IRouter.Storage","nameLocations":["28939:7:169","28947:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"28939:15:169"},"referencedDeclaration":74490,"src":"28939:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28938:32:169"},"returnParameters":{"id":83827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83826,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83845,"src":"28994:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83825,"nodeType":"UserDefinedTypeName","pathNode":{"id":83824,"name":"Validators","nameLocations":["28994:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"28994:10:169"},"referencedDeclaration":82928,"src":"28994:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28993:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83873,"nodeType":"FunctionDefinition","src":"29367:312:169","nodes":[],"body":{"id":83872,"nodeType":"Block","src":"29476:203:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29516:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83859,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83851,"src":"29524:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83857,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83940,"src":"29490:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":83860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29490:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83870,"nodeType":"Block","src":"29604:69:169","statements":[{"expression":{"expression":{"expression":{"id":83866,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29625:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29632:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29625:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29651:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"29625:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83856,"id":83869,"nodeType":"Return","src":"29618:44:169"}]},"id":83871,"nodeType":"IfStatement","src":"29486:187:169","trueBody":{"id":83865,"nodeType":"Block","src":"29529:69:169","statements":[{"expression":{"expression":{"expression":{"id":83861,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83849,"src":"29550:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29557:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"29550:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29576:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"29550:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83856,"id":83864,"nodeType":"Return","src":"29543:44:169"}]}}]},"documentation":{"id":83846,"nodeType":"StructuredDocumentation","src":"29236:126:169","text":" @dev Returns validators at the given timestamp.\n @param ts Timestamp for which to get the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsAt","nameLocation":"29376:12:169","parameters":{"id":83852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83849,"mutability":"mutable","name":"router","nameLocation":"29413:6:169","nodeType":"VariableDeclaration","scope":83873,"src":"29389:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83848,"nodeType":"UserDefinedTypeName","pathNode":{"id":83847,"name":"IRouter.Storage","nameLocations":["29389:7:169","29397:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"29389:15:169"},"referencedDeclaration":74490,"src":"29389:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83851,"mutability":"mutable","name":"ts","nameLocation":"29429:2:169","nodeType":"VariableDeclaration","scope":83873,"src":"29421:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83850,"name":"uint256","nodeType":"ElementaryTypeName","src":"29421:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29388:44:169"},"returnParameters":{"id":83856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83855,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83873,"src":"29456:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83854,"nodeType":"UserDefinedTypeName","pathNode":{"id":83853,"name":"Validators","nameLocations":["29456:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"29456:10:169"},"referencedDeclaration":82928,"src":"29456:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29455:20:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83940,"nodeType":"FunctionDefinition","src":"30086:863:169","nodes":[],"body":{"id":83939,"nodeType":"Block","src":"30230:719:169","nodes":[],"statements":[{"assignments":[83885],"declarations":[{"constant":false,"id":83885,"mutability":"mutable","name":"ts0","nameLocation":"30248:3:169","nodeType":"VariableDeclaration","scope":83939,"src":"30240:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83884,"name":"uint256","nodeType":"ElementaryTypeName","src":"30240:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83890,"initialValue":{"expression":{"expression":{"expression":{"id":83886,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83877,"src":"30254:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30261:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"30254:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30280:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"30254:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"id":83889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30292:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"30254:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30240:68:169"},{"assignments":[83892],"declarations":[{"constant":false,"id":83892,"mutability":"mutable","name":"ts1","nameLocation":"30326:3:169","nodeType":"VariableDeclaration","scope":83939,"src":"30318:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83891,"name":"uint256","nodeType":"ElementaryTypeName","src":"30318:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83897,"initialValue":{"expression":{"expression":{"expression":{"id":83893,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83877,"src":"30332:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30339:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"30332:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30358:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"30332:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},"id":83896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30370:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"30332:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30318:68:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83899,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30460:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":83900,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30467:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30460:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83902,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82898,"src":"30472:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30472:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83898,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30452:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30452:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83905,"nodeType":"ExpressionStatement","src":"30452:50:169"},{"assignments":[83907],"declarations":[{"constant":false,"id":83907,"mutability":"mutable","name":"ts1Greater","nameLocation":"30518:10:169","nodeType":"VariableDeclaration","scope":83939,"src":"30513:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83906,"name":"bool","nodeType":"ElementaryTypeName","src":"30513:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83911,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83908,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30531:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83909,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30537:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30531:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30513:27:169"},{"assignments":[83913],"declarations":[{"constant":false,"id":83913,"mutability":"mutable","name":"tsGe0","nameLocation":"30555:5:169","nodeType":"VariableDeclaration","scope":83939,"src":"30550:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83912,"name":"bool","nodeType":"ElementaryTypeName","src":"30550:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83917,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83914,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"30563:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83915,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83879,"src":"30570:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30563:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30550:22:169"},{"assignments":[83919],"declarations":[{"constant":false,"id":83919,"mutability":"mutable","name":"tsGe1","nameLocation":"30587:5:169","nodeType":"VariableDeclaration","scope":83939,"src":"30582:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83918,"name":"bool","nodeType":"ElementaryTypeName","src":"30582:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83923,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83920,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83892,"src":"30595:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83921,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83879,"src":"30602:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30595:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30582:22:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83925,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83913,"src":"30696:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":83926,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83919,"src":"30705:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30696:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83928,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82901,"src":"30712:30:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30712:32:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83924,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30688:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30688:57:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83931,"nodeType":"ExpressionStatement","src":"30688:57:169"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83932,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83907,"src":"30912:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83933,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83913,"src":"30927:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83934,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83919,"src":"30936:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30927:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":83936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30926:16:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30912:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83883,"id":83938,"nodeType":"Return","src":"30905:37:169"}]},"documentation":{"id":83874,"nodeType":"StructuredDocumentation","src":"29685:396:169","text":" @dev Returns `true` if validators at `ts` are stored in `router.validationSettings.validators1`.\n `false` means that current era validators are stored in `router.validationSettings.validators0`.\n @param ts Timestamp for which to check the validators slot.\n @return isSlot1 Whether validators at `ts` are stored in `router.validationSettings.validators1`."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsStoredInSlot1At","nameLocation":"30095:25:169","parameters":{"id":83880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83877,"mutability":"mutable","name":"router","nameLocation":"30145:6:169","nodeType":"VariableDeclaration","scope":83940,"src":"30121:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83876,"nodeType":"UserDefinedTypeName","pathNode":{"id":83875,"name":"IRouter.Storage","nameLocations":["30121:7:169","30129:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"30121:15:169"},"referencedDeclaration":74490,"src":"30121:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83879,"mutability":"mutable","name":"ts","nameLocation":"30161:2:169","nodeType":"VariableDeclaration","scope":83940,"src":"30153:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83878,"name":"uint256","nodeType":"ElementaryTypeName","src":"30153:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30120:44:169"},"returnParameters":{"id":83883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83882,"mutability":"mutable","name":"isSlot1","nameLocation":"30217:7:169","nodeType":"VariableDeclaration","scope":83940,"src":"30212:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83881,"name":"bool","nodeType":"ElementaryTypeName","src":"30212:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30211:14:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83986,"nodeType":"FunctionDefinition","src":"31451:456:169","nodes":[],"body":{"id":83985,"nodeType":"Block","src":"31634:273:169","nodes":[],"statements":[{"assignments":[83953],"declarations":[{"constant":false,"id":83953,"mutability":"mutable","name":"a","nameLocation":"31652:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31644:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83952,"name":"uint256","nodeType":"ElementaryTypeName","src":"31644:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83954,"nodeType":"VariableDeclarationStatement","src":"31644:9:169"},{"id":83961,"nodeType":"UncheckedBlock","src":"31663:76:169","statements":[{"expression":{"id":83959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83955,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31687:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83956,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83943,"src":"31691:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":83957,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83945,"src":"31710:18:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31691:37:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31687:41:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83960,"nodeType":"ExpressionStatement","src":"31687:41:169"}]},{"assignments":[83963],"declarations":[{"constant":false,"id":83963,"mutability":"mutable","name":"d","nameLocation":"31756:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31748:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83962,"name":"uint256","nodeType":"ElementaryTypeName","src":"31748:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83967,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83964,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31760:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":83965,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83947,"src":"31764:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31760:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31748:36:169"},{"assignments":[83969],"declarations":[{"constant":false,"id":83969,"mutability":"mutable","name":"r","nameLocation":"31802:1:169","nodeType":"VariableDeclaration","scope":83985,"src":"31794:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83968,"name":"uint256","nodeType":"ElementaryTypeName","src":"31794:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83973,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83970,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83953,"src":"31806:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":83971,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83947,"src":"31810:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31806:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31794:36:169"},{"id":83984,"nodeType":"UncheckedBlock","src":"31840:61:169","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83974,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83969,"src":"31872:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":83975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31876:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31872:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":83977,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31871:7:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83981,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83963,"src":"31889:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31871:19:169","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83978,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83963,"src":"31881:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":83979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31885:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"31881:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83951,"id":83983,"nodeType":"Return","src":"31864:26:169"}]}]},"documentation":{"id":83941,"nodeType":"StructuredDocumentation","src":"30955:491:169","text":" @dev Calculates the threshold number of valid signatures required.\n The formula is:\n - `(validatorsAmount * thresholdNumerator).div_ceil(thresholdDenominator)`\n @param validatorsAmount The total number of validators.\n @param thresholdNumerator The numerator of the threshold fraction.\n @param thresholdDenominator The denominator of the threshold fraction.\n @return threshold The threshold number of valid signatures required."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"31460:19:169","parameters":{"id":83948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83943,"mutability":"mutable","name":"validatorsAmount","nameLocation":"31488:16:169","nodeType":"VariableDeclaration","scope":83986,"src":"31480:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83942,"name":"uint256","nodeType":"ElementaryTypeName","src":"31480:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83945,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"31514:18:169","nodeType":"VariableDeclaration","scope":83986,"src":"31506:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83944,"name":"uint128","nodeType":"ElementaryTypeName","src":"31506:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83947,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"31542:20:169","nodeType":"VariableDeclaration","scope":83986,"src":"31534:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83946,"name":"uint128","nodeType":"ElementaryTypeName","src":"31534:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"31479:84:169"},"returnParameters":{"id":83951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83950,"mutability":"mutable","name":"threshold","nameLocation":"31619:9:169","nodeType":"VariableDeclaration","scope":83986,"src":"31611:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83949,"name":"uint256","nodeType":"ElementaryTypeName","src":"31611:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31610:19:169"},"scope":84099,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":84009,"nodeType":"FunctionDefinition","src":"32092:179:169","nodes":[],"body":{"id":84008,"nodeType":"Block","src":"32188:83:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83997,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83992,"src":"32206:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":83998,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"32211:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32218:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"32211:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32231:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"32211:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"32206:34:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84002,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32205:36:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84003,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83990,"src":"32244:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32251:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"32244:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32261:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"32244:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32205:59:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83996,"id":84007,"nodeType":"Return","src":"32198:66:169"}]},"documentation":{"id":83987,"nodeType":"StructuredDocumentation","src":"31913:174:169","text":" @dev Returns the era index for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era index."},"implemented":true,"kind":"function","modifiers":[],"name":"eraIndexAt","nameLocation":"32101:10:169","parameters":{"id":83993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83990,"mutability":"mutable","name":"router","nameLocation":"32136:6:169","nodeType":"VariableDeclaration","scope":84009,"src":"32112:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83989,"nodeType":"UserDefinedTypeName","pathNode":{"id":83988,"name":"IRouter.Storage","nameLocations":["32112:7:169","32120:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"32112:15:169"},"referencedDeclaration":74490,"src":"32112:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83992,"mutability":"mutable","name":"ts","nameLocation":"32152:2:169","nodeType":"VariableDeclaration","scope":84009,"src":"32144:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83991,"name":"uint256","nodeType":"ElementaryTypeName","src":"32144:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32111:44:169"},"returnParameters":{"id":83996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84009,"src":"32179:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83994,"name":"uint256","nodeType":"ElementaryTypeName","src":"32179:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32178:9:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84034,"nodeType":"FunctionDefinition","src":"32487:199:169","nodes":[],"body":{"id":84033,"nodeType":"Block","src":"32585:101:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84020,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32602:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32609:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"32602:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32622:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"32602:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":84024,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32645:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84025,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84015,"src":"32653:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84023,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84009,"src":"32634:10:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32634:22:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":84027,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84013,"src":"32659:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32666:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"32659:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32676:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"32659:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32634:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32602:77:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84019,"id":84032,"nodeType":"Return","src":"32595:84:169"}]},"documentation":{"id":84010,"nodeType":"StructuredDocumentation","src":"32277:205:169","text":" @dev Returns the timestamp when the era started for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era start timestamp."},"implemented":true,"kind":"function","modifiers":[],"name":"eraStartedAt","nameLocation":"32496:12:169","parameters":{"id":84016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84013,"mutability":"mutable","name":"router","nameLocation":"32533:6:169","nodeType":"VariableDeclaration","scope":84034,"src":"32509:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84012,"nodeType":"UserDefinedTypeName","pathNode":{"id":84011,"name":"IRouter.Storage","nameLocations":["32509:7:169","32517:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"32509:15:169"},"referencedDeclaration":74490,"src":"32509:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84015,"mutability":"mutable","name":"ts","nameLocation":"32549:2:169","nodeType":"VariableDeclaration","scope":84034,"src":"32541:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84014,"name":"uint256","nodeType":"ElementaryTypeName","src":"32541:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32508:44:169"},"returnParameters":{"id":84019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84034,"src":"32576:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84017,"name":"uint256","nodeType":"ElementaryTypeName","src":"32576:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32575:9:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84057,"nodeType":"FunctionDefinition","src":"33026:467:169","nodes":[],"body":{"id":84056,"nodeType":"Block","src":"33172:321:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":84046,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33244:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33255:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"33244:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":84048,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33330:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33341:40:169","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"33330:51:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":84050,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33401:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33412:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"33401:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":84052,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84038,"src":"33448:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33459:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"33448:27:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84044,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"33189:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":84045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33194:14:169","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":82940,"src":"33189:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$82940_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":84054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["33223:19:169","33288:40:169","33395:4:169","33430:16:169"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"33189:297:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":84043,"id":84055,"nodeType":"Return","src":"33182:304:169"}]},"documentation":{"id":84035,"nodeType":"StructuredDocumentation","src":"32692:329:169","text":" @dev Converts `Gear.Validators` storage to `Gear.ValidatorsView` struct.\n Note that `validators.map` is passed as `validators.list`.\n @param validators The `Gear.Validators` storage to convert.\n @return validatorsView `Gear.ValidatorsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"33035:6:169","parameters":{"id":84039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84038,"mutability":"mutable","name":"validators","nameLocation":"33066:10:169","nodeType":"VariableDeclaration","scope":84057,"src":"33042:34:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84037,"nodeType":"UserDefinedTypeName","pathNode":{"id":84036,"name":"Gear.Validators","nameLocations":["33042:4:169","33047:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"33042:15:169"},"referencedDeclaration":82928,"src":"33042:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"33041:36:169"},"returnParameters":{"id":84043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84042,"mutability":"mutable","name":"validatorsView","nameLocation":"33152:14:169","nodeType":"VariableDeclaration","scope":84057,"src":"33125:41:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84041,"nodeType":"UserDefinedTypeName","pathNode":{"id":84040,"name":"Gear.ValidatorsView","nameLocations":["33125:4:169","33130:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"33125:19:169"},"referencedDeclaration":82940,"src":"33125:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"33124:43:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84098,"nodeType":"FunctionDefinition","src":"33790:581:169","nodes":[],"body":{"id":84097,"nodeType":"Block","src":"33948:423:169","nodes":[],"statements":[{"assignments":[84071],"declarations":[{"constant":false,"id":84071,"mutability":"mutable","name":"validators0","nameLocation":"33985:11:169","nodeType":"VariableDeclaration","scope":84097,"src":"33958:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84070,"nodeType":"UserDefinedTypeName","pathNode":{"id":84069,"name":"Gear.ValidatorsView","nameLocations":["33958:4:169","33963:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"33958:19:169"},"referencedDeclaration":82940,"src":"33958:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84076,"initialValue":{"arguments":[{"expression":{"id":84073,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34006:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34015:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"34006:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}],"id":84072,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84057,84098],"referencedDeclaration":84057,"src":"33999:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$82928_storage_ptr_$returns$_t_struct$_ValidatorsView_$82940_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33999:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"33958:69:169"},{"assignments":[84081],"declarations":[{"constant":false,"id":84081,"mutability":"mutable","name":"validators1","nameLocation":"34064:11:169","nodeType":"VariableDeclaration","scope":84097,"src":"34037:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84080,"nodeType":"UserDefinedTypeName","pathNode":{"id":84079,"name":"Gear.ValidatorsView","nameLocations":["34037:4:169","34042:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":82940,"src":"34037:19:169"},"referencedDeclaration":82940,"src":"34037:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84086,"initialValue":{"arguments":[{"expression":{"id":84083,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34085:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34094:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83186,"src":"34085:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}],"id":84082,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84057,84098],"referencedDeclaration":84057,"src":"34078:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$82928_storage_ptr_$returns$_t_struct$_ValidatorsView_$82940_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34078:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34037:69:169"},{"expression":{"arguments":[{"expression":{"id":84089,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34185:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34194:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"34185:27:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":84091,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84061,"src":"34248:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34257:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"34248:29:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84093,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84071,"src":"34304:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":84094,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84081,"src":"34342:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$82940_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":84087,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"34123:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":84088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34128:22:169","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":83199,"src":"34123:27:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$83199_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":84095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["34165:18:169","34226:20:169","34291:11:169","34329:11:169"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"34123:241:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":84066,"id":84096,"nodeType":"Return","src":"34116:248:169"}]},"documentation":{"id":84058,"nodeType":"StructuredDocumentation","src":"33499:286:169","text":" @dev Converts `Gear.ValidationSettings` storage to `Gear.ValidationSettingsView` struct.\n @param settings The `Gear.ValidationSettings` storage to convert.\n @return settingsView `Gear.ValidationSettingsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"33799:6:169","parameters":{"id":84062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84061,"mutability":"mutable","name":"settings","nameLocation":"33838:8:169","nodeType":"VariableDeclaration","scope":84098,"src":"33806:40:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":84060,"nodeType":"UserDefinedTypeName","pathNode":{"id":84059,"name":"Gear.ValidationSettings","nameLocations":["33806:4:169","33811:18:169"],"nodeType":"IdentifierPath","referencedDeclaration":83187,"src":"33806:23:169"},"referencedDeclaration":83187,"src":"33806:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"33805:42:169"},"returnParameters":{"id":84066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84065,"mutability":"mutable","name":"settingsView","nameLocation":"33930:12:169","nodeType":"VariableDeclaration","scope":84098,"src":"33895:47:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":84064,"nodeType":"UserDefinedTypeName","pathNode":{"id":84063,"name":"Gear.ValidationSettingsView","nameLocations":["33895:4:169","33900:22:169"],"nodeType":"IdentifierPath","referencedDeclaration":83199,"src":"33895:27:169"},"referencedDeclaration":83199,"src":"33895:27:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"33894:49:169"},"scope":84099,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":82854,"nodeType":"StructuredDocumentation","src":"744:770:169","text":" @dev Library for core protocol utility functions for hashing, validation, and consensus-related logic.\n It provides:\n - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions)\n - Validator set management with era-based switching and threshold configuration\n - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures\n with transient storage to prevent double counting of signatures\n - Era and timeline utilities for selecting correct validator sets based on timestamp\n The library acts as a shared foundation for consensus, validation, and commitment verification\n across all protocol components."},"fullyImplemented":true,"linearizedBaseContracts":[84099],"name":"Gear","nameLocation":"1523:4:169","scope":84100,"usedErrors":[82883,82886,82889,82892,82895,82898,82901],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":169} \ No newline at end of file +{"abi":[{"type":"function","name":"COMPUTATION_THRESHOLD","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"WVARA_PER_SECOND","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]}],"bytecode":{"object":"0x6080806040523460175760a19081601c823930815050f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:33065:169:-:0;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60808060405260043610156011575f80fd5b5f3560e01c9081630279472c14608e575080632c184e1c1460745780637841919a14605c5763db3fe3f1146043575f80fd5b5f366003190112605857602060405160028152f35b5f80fd5b5f3660031901126058576020604051639502f9008152f35b5f36600319011260585760206040516509184e72a0008152f35b5f36600319011260585780600360209252f3","sourceMap":"1515:33065:169:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1515:33065:169;;;;;;;2071:1;1515:33065;;;;;;;;;;-1:-1:-1;;1515:33065:169;;;;;;;1855:13;1515:33065;;;;;;-1:-1:-1;;1515:33065:169;;;;;;;2383:18;1515:33065;;;;;;-1:-1:-1;;1515:33065:169;;;;;2203:1;1515:33065;;;","linkReferences":{}},"methodIdentifiers":{"COMPUTATION_THRESHOLD()":"7841919a","VALIDATORS_THRESHOLD_DENOMINATOR()":"0279472c","VALIDATORS_THRESHOLD_NUMERATOR()":"db3fe3f1","WVARA_PER_SECOND()":"2c184e1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"COMPUTATION_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_DENOMINATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VALIDATORS_THRESHOLD_NUMERATOR\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WVARA_PER_SECOND\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Library for core protocol utility functions for hashing, validation, and consensus-related logic. It provides: - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions) - Validator set management with era-based switching and threshold configuration - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures with transient storage to prevent double counting of signatures - Era and timeline utilities for selecting correct validator sets based on timestamp The library acts as a shared foundation for consensus, validation, and commitment verification across all protocol components.\",\"errors\":{\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"COMPUTATION_THRESHOLD\":{\"details\":\"The threshold for computation cost in gear gas. 2.5 * (10 ** 9) of gear gas.\"},\"VALIDATORS_THRESHOLD_DENOMINATOR\":{\"details\":\"The validators threshold denominator.\"},\"VALIDATORS_THRESHOLD_NUMERATOR\":{\"details\":\"2/3 of validators must sign the commitment for it to be valid.The validators threshold numerator.\"},\"WVARA_PER_SECOND\":{\"details\":\"The amount of WVara tokens to be paid per compute second. 10 WVARA tokens per compute second.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/libraries/Gear.sol\":\"Gear\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009\",\"dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded\",\"dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"stateMutability":"view","type":"function","name":"COMPUTATION_THRESHOLD","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_DENOMINATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"VALIDATORS_THRESHOLD_NUMERATOR","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WVARA_PER_SECOND","outputs":[{"internalType":"uint128","name":"","type":"uint128"}]}],"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/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/libraries/Gear.sol":"Gear"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc","urls":["bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009","dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45","urls":["bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded","dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/libraries/Gear.sol","id":84182,"exportedSymbols":{"ECDSA":[51038],"FROST":[40965],"Gear":[84181],"Hashes":[41483],"IRouter":[75008],"MessageHashUtils":[52237],"SafeCast":[55635],"SlotDerivation":[48965],"Time":[60343],"TransientSlot":[50690]},"nodeType":"SourceUnit","src":"74:34507:169","nodes":[{"id":82914,"nodeType":"PragmaDirective","src":"74:24:169","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82916,"nodeType":"ImportDirective","src":"100:80:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":82915,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"108:14:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82918,"nodeType":"ImportDirective","src":"181:78:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol","file":"@openzeppelin/contracts/utils/TransientSlot.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":50691,"symbolAliases":[{"foreign":{"id":82917,"name":"TransientSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50690,"src":"189:13:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82920,"nodeType":"ImportDirective","src":"260:75:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":82919,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"268:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82922,"nodeType":"ImportDirective","src":"336:97:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":52238,"symbolAliases":[{"foreign":{"id":82921,"name":"MessageHashUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52237,"src":"344:16:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82924,"nodeType":"ImportDirective","src":"434:73:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol","file":"@openzeppelin/contracts/utils/math/SafeCast.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":55636,"symbolAliases":[{"foreign":{"id":82923,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"442:8:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82926,"nodeType":"ImportDirective","src":"508:66:169","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":82925,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"516:4:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82928,"nodeType":"ImportDirective","src":"575:52:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":82927,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"583:5:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82930,"nodeType":"ImportDirective","src":"628:73:169","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":82929,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"636:6:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82932,"nodeType":"ImportDirective","src":"702:40:169","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84182,"sourceUnit":75009,"symbolAliases":[{"foreign":{"id":82931,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75008,"src":"710:7:169","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84181,"nodeType":"ContractDefinition","src":"1515:33065:169","nodes":[{"id":82936,"nodeType":"UsingForDirective","src":"1534:24:169","nodes":[],"global":false,"libraryName":{"id":82934,"name":"ECDSA","nameLocations":["1540:5:169"],"nodeType":"IdentifierPath","referencedDeclaration":51038,"src":"1540:5:169"},"typeName":{"id":82935,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1550:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":82939,"nodeType":"UsingForDirective","src":"1563:35:169","nodes":[],"global":false,"libraryName":{"id":82937,"name":"MessageHashUtils","nameLocations":["1569:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":52237,"src":"1569:16:169"},"typeName":{"id":82938,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":82941,"nodeType":"UsingForDirective","src":"1604:26:169","nodes":[],"global":false,"libraryName":{"id":82940,"name":"TransientSlot","nameLocations":["1610:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":50690,"src":"1610:13:169"}},{"id":82943,"nodeType":"UsingForDirective","src":"1635:27:169","nodes":[],"global":false,"libraryName":{"id":82942,"name":"SlotDerivation","nameLocations":["1641:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":48965,"src":"1641:14:169"}},{"id":82947,"nodeType":"VariableDeclaration","src":"1808:60:169","nodes":[],"constant":true,"documentation":{"id":82944,"nodeType":"StructuredDocumentation","src":"1691:112:169","text":" @dev The threshold for computation cost in gear gas.\n 2.5 * (10 ** 9) of gear gas."},"functionSelector":"7841919a","mutability":"constant","name":"COMPUTATION_THRESHOLD","nameLocation":"1831:21:169","scope":84181,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":82945,"name":"uint64","nodeType":"ElementaryTypeName","src":"1808:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"value":{"hexValue":"325f3530305f3030305f303030","id":82946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1855:13:169","typeDescriptions":{"typeIdentifier":"t_rational_2500000000_by_1","typeString":"int_const 2500000000"},"value":"2_500_000_000"},"visibility":"public"},{"id":82951,"nodeType":"VariableDeclaration","src":"2014:58:169","nodes":[],"constant":true,"documentation":{"id":82948,"nodeType":"StructuredDocumentation","src":"1875:134:169","text":" @dev 2/3 of validators must sign the commitment for it to be valid.\n @dev The validators threshold numerator."},"functionSelector":"db3fe3f1","mutability":"constant","name":"VALIDATORS_THRESHOLD_NUMERATOR","nameLocation":"2038:30:169","scope":84181,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82949,"name":"uint128","nodeType":"ElementaryTypeName","src":"2014:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"32","id":82950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2071:1:169","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":82955,"nodeType":"VariableDeclaration","src":"2144:60:169","nodes":[],"constant":true,"documentation":{"id":82952,"nodeType":"StructuredDocumentation","src":"2078:61:169","text":" @dev The validators threshold denominator."},"functionSelector":"0279472c","mutability":"constant","name":"VALIDATORS_THRESHOLD_DENOMINATOR","nameLocation":"2168:32:169","scope":84181,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82953,"name":"uint128","nodeType":"ElementaryTypeName","src":"2144:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"33","id":82954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2203:1:169","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"public"},{"id":82959,"nodeType":"VariableDeclaration","src":"2340:61:169","nodes":[],"constant":true,"documentation":{"id":82956,"nodeType":"StructuredDocumentation","src":"2211:124:169","text":" @dev The amount of WVara tokens to be paid per compute second.\n 10 WVARA tokens per compute second."},"functionSelector":"2c184e1c","mutability":"constant","name":"WVARA_PER_SECOND","nameLocation":"2364:16:169","scope":84181,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82957,"name":"uint128","nodeType":"ElementaryTypeName","src":"2340:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":{"hexValue":"31305f3030305f3030305f3030305f303030","id":82958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:18:169","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000_by_1","typeString":"int_const 10000000000000"},"value":"10_000_000_000_000"},"visibility":"public"},{"id":82962,"nodeType":"ErrorDefinition","src":"2528:32:169","nodes":[],"documentation":{"id":82960,"nodeType":"StructuredDocumentation","src":"2428:95:169","text":" @dev Thrown when signature validation is attempted before the genesis block."},"errorSelector":"00f4462b","name":"ValidationBeforeGenesis","nameLocation":"2534:23:169","parameters":{"id":82961,"nodeType":"ParameterList","parameters":[],"src":"2557:2:169"}},{"id":82965,"nodeType":"ErrorDefinition","src":"2652:38:169","nodes":[],"documentation":{"id":82963,"nodeType":"StructuredDocumentation","src":"2566:81:169","text":" @dev Thrown when the timestamp is older than the previous era."},"errorSelector":"8d763ca0","name":"TimestampOlderThanPreviousEra","nameLocation":"2658:29:169","parameters":{"id":82964,"nodeType":"ParameterList","parameters":[],"src":"2687:2:169"}},{"id":82968,"nodeType":"ErrorDefinition","src":"2768:26:169","nodes":[],"documentation":{"id":82966,"nodeType":"StructuredDocumentation","src":"2696:67:169","text":" @dev Thrown when the timestamp is in the future."},"errorSelector":"47860b97","name":"TimestampInFuture","nameLocation":"2774:17:169","parameters":{"id":82967,"nodeType":"ParameterList","parameters":[],"src":"2791:2:169"}},{"id":82971,"nodeType":"ErrorDefinition","src":"2883:35:169","nodes":[],"documentation":{"id":82969,"nodeType":"StructuredDocumentation","src":"2800:78:169","text":" @dev Thrown when the number of FROST signatures is invalid."},"errorSelector":"60a1ea77","name":"InvalidFrostSignatureCount","nameLocation":"2889:26:169","parameters":{"id":82970,"nodeType":"ParameterList","parameters":[],"src":"2915:2:169"}},{"id":82974,"nodeType":"ErrorDefinition","src":"3037:36:169","nodes":[],"documentation":{"id":82972,"nodeType":"StructuredDocumentation","src":"2924:108:169","text":" @dev Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes."},"errorSelector":"2ce466bf","name":"InvalidFrostSignatureLength","nameLocation":"3043:27:169","parameters":{"id":82973,"nodeType":"ParameterList","parameters":[],"src":"3070:2:169"}},{"id":82977,"nodeType":"ErrorDefinition","src":"3251:36:169","nodes":[],"documentation":{"id":82975,"nodeType":"StructuredDocumentation","src":"3079:167:169","text":" @dev Thrown when the timestamp of an era is equal to the timestamp of the previous era.\n Should never happen, because the implementation."},"errorSelector":"f26224af","name":"ErasTimestampMustNotBeEqual","nameLocation":"3257:27:169","parameters":{"id":82976,"nodeType":"ParameterList","parameters":[],"src":"3284:2:169"}},{"id":82980,"nodeType":"ErrorDefinition","src":"3441:39:169","nodes":[],"documentation":{"id":82978,"nodeType":"StructuredDocumentation","src":"3293:143:169","text":" @dev Thrown when no validators are found for a given timestamp.\n Should never happen, because the implementation."},"errorSelector":"98715d2a","name":"ValidatorsNotFoundForTimestamp","nameLocation":"3447:30:169","parameters":{"id":82979,"nodeType":"ParameterList","parameters":[],"src":"3477:2:169"}},{"id":82986,"nodeType":"StructDefinition","src":"3768:72:169","nodes":[],"canonicalName":"Gear.AggregatedPublicKey","documentation":{"id":82981,"nodeType":"StructuredDocumentation","src":"3507:256:169","text":" @dev Represents an aggregated public key.\n When present (`hasAggregatedPublicKey` is `true`), it is checked with `FROST.isValidPublicKey(x, y)` in `Router._resetValidators(...)`,\n so we can be sure that it is valid."},"members":[{"constant":false,"id":82983,"mutability":"mutable","name":"x","nameLocation":"3813:1:169","nodeType":"VariableDeclaration","scope":82986,"src":"3805:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82982,"name":"uint256","nodeType":"ElementaryTypeName","src":"3805:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82985,"mutability":"mutable","name":"y","nameLocation":"3832:1:169","nodeType":"VariableDeclaration","scope":82986,"src":"3824:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82984,"name":"uint256","nodeType":"ElementaryTypeName","src":"3824:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"AggregatedPublicKey","nameLocation":"3775:19:169","scope":84181,"visibility":"public"},{"id":83007,"nodeType":"StructDefinition","src":"3909:1200:169","nodes":[],"canonicalName":"Gear.Validators","documentation":{"id":82987,"nodeType":"StructuredDocumentation","src":"3846:58:169","text":" @dev Represents validators information."},"members":[{"constant":false,"id":82991,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"4299:19:169","nodeType":"VariableDeclaration","scope":83007,"src":"4279:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82990,"nodeType":"UserDefinedTypeName","pathNode":{"id":82989,"name":"AggregatedPublicKey","nameLocations":["4279:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"4279:19:169"},"referencedDeclaration":82986,"src":"4279:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82994,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"4626:40:169","nodeType":"VariableDeclaration","scope":83007,"src":"4618:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82993,"name":"address","nodeType":"ElementaryTypeName","src":"4618:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82999,"mutability":"mutable","name":"map","nameLocation":"4884:3:169","nodeType":"VariableDeclaration","scope":83007,"src":"4859:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":82998,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":82996,"name":"address","nodeType":"ElementaryTypeName","src":"4867:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4859:24:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":82997,"name":"bool","nodeType":"ElementaryTypeName","src":"4878:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":83003,"mutability":"mutable","name":"list","nameLocation":"4976:4:169","nodeType":"VariableDeclaration","scope":83007,"src":"4966:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83001,"name":"address","nodeType":"ElementaryTypeName","src":"4966:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83002,"nodeType":"ArrayTypeName","src":"4966:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83006,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5086:16:169","nodeType":"VariableDeclaration","scope":83007,"src":"5078:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83005,"name":"uint256","nodeType":"ElementaryTypeName","src":"5078:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Validators","nameLocation":"3916:10:169","scope":84181,"visibility":"public"},{"id":83019,"nodeType":"StructDefinition","src":"5186:194:169","nodes":[],"canonicalName":"Gear.ValidatorsView","documentation":{"id":83008,"nodeType":"StructuredDocumentation","src":"5115:66:169","text":" @dev Represents view of validators information."},"members":[{"constant":false,"id":83011,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"5238:19:169","nodeType":"VariableDeclaration","scope":83019,"src":"5218:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":83010,"nodeType":"UserDefinedTypeName","pathNode":{"id":83009,"name":"AggregatedPublicKey","nameLocations":["5218:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"5218:19:169"},"referencedDeclaration":82986,"src":"5218:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":83013,"mutability":"mutable","name":"verifiableSecretSharingCommitmentPointer","nameLocation":"5275:40:169","nodeType":"VariableDeclaration","scope":83019,"src":"5267:48:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83012,"name":"address","nodeType":"ElementaryTypeName","src":"5267:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83016,"mutability":"mutable","name":"list","nameLocation":"5335:4:169","nodeType":"VariableDeclaration","scope":83019,"src":"5325:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83014,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83015,"nodeType":"ArrayTypeName","src":"5325:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83018,"mutability":"mutable","name":"useFromTimestamp","nameLocation":"5357:16:169","nodeType":"VariableDeclaration","scope":83019,"src":"5349:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83017,"name":"uint256","nodeType":"ElementaryTypeName","src":"5349:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsView","nameLocation":"5193:14:169","scope":84181,"visibility":"public"},{"id":83030,"nodeType":"StructDefinition","src":"5451:353:169","nodes":[],"canonicalName":"Gear.AddressBook","documentation":{"id":83020,"nodeType":"StructuredDocumentation","src":"5386:60:169","text":" @dev Represents address book information."},"members":[{"constant":false,"id":83023,"mutability":"mutable","name":"mirror","nameLocation":"5566:6:169","nodeType":"VariableDeclaration","scope":83030,"src":"5558:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83022,"name":"address","nodeType":"ElementaryTypeName","src":"5558:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83026,"mutability":"mutable","name":"wrappedVara","nameLocation":"5673:11:169","nodeType":"VariableDeclaration","scope":83030,"src":"5665:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83025,"name":"address","nodeType":"ElementaryTypeName","src":"5665:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83029,"mutability":"mutable","name":"middleware","nameLocation":"5787:10:169","nodeType":"VariableDeclaration","scope":83030,"src":"5779:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83028,"name":"address","nodeType":"ElementaryTypeName","src":"5779:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressBook","nameLocation":"5458:11:169","scope":84181,"visibility":"public"},{"id":83038,"nodeType":"StructDefinition","src":"5866:248:169","nodes":[],"canonicalName":"Gear.CodeCommitment","documentation":{"id":83031,"nodeType":"StructuredDocumentation","src":"5810:51:169","text":" @dev Represents code commitment."},"members":[{"constant":false,"id":83034,"mutability":"mutable","name":"id","nameLocation":"6010:2:169","nodeType":"VariableDeclaration","scope":83038,"src":"6002:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6002:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83037,"mutability":"mutable","name":"valid","nameLocation":"6102:5:169","nodeType":"VariableDeclaration","scope":83038,"src":"6097:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83036,"name":"bool","nodeType":"ElementaryTypeName","src":"6097:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CodeCommitment","nameLocation":"5873:14:169","scope":84181,"visibility":"public"},{"id":83051,"nodeType":"StructDefinition","src":"6177:541:169","nodes":[],"canonicalName":"Gear.ChainCommitment","documentation":{"id":83039,"nodeType":"StructuredDocumentation","src":"6120:52:169","text":" @dev Represents chain commitment."},"members":[{"constant":false,"id":83044,"mutability":"mutable","name":"transitions","nameLocation":"6319:11:169","nodeType":"VariableDeclaration","scope":83051,"src":"6301:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83249_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":83042,"nodeType":"UserDefinedTypeName","pathNode":{"id":83041,"name":"StateTransition","nameLocations":["6301:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":83249,"src":"6301:15:169"},"referencedDeclaration":83249,"src":"6301:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":83043,"nodeType":"ArrayTypeName","src":"6301:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83249_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"},{"constant":false,"id":83047,"mutability":"mutable","name":"head","nameLocation":"6436:4:169","nodeType":"VariableDeclaration","scope":83051,"src":"6428:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6428:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83050,"mutability":"mutable","name":"lastAdvancedEthBlock","nameLocation":"6691:20:169","nodeType":"VariableDeclaration","scope":83051,"src":"6683:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6683:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ChainCommitment","nameLocation":"6184:15:169","scope":84181,"visibility":"public"},{"id":83065,"nodeType":"StructDefinition","src":"6786:226:169","nodes":[],"canonicalName":"Gear.ValidatorsCommitment","documentation":{"id":83052,"nodeType":"StructuredDocumentation","src":"6724:57:169","text":" @dev Represents validators commitment."},"members":[{"constant":false,"id":83054,"mutability":"mutable","name":"hasAggregatedPublicKey","nameLocation":"6829:22:169","nodeType":"VariableDeclaration","scope":83065,"src":"6824:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83053,"name":"bool","nodeType":"ElementaryTypeName","src":"6824:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83057,"mutability":"mutable","name":"aggregatedPublicKey","nameLocation":"6881:19:169","nodeType":"VariableDeclaration","scope":83065,"src":"6861:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":83056,"nodeType":"UserDefinedTypeName","pathNode":{"id":83055,"name":"AggregatedPublicKey","nameLocations":["6861:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"6861:19:169"},"referencedDeclaration":82986,"src":"6861:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":83059,"mutability":"mutable","name":"verifiableSecretSharingCommitment","nameLocation":"6916:33:169","nodeType":"VariableDeclaration","scope":83065,"src":"6910:39:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83058,"name":"bytes","nodeType":"ElementaryTypeName","src":"6910:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83062,"mutability":"mutable","name":"validators","nameLocation":"6969:10:169","nodeType":"VariableDeclaration","scope":83065,"src":"6959:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83060,"name":"address","nodeType":"ElementaryTypeName","src":"6959:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83061,"nodeType":"ArrayTypeName","src":"6959:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":83064,"mutability":"mutable","name":"eraIndex","nameLocation":"6997:8:169","nodeType":"VariableDeclaration","scope":83065,"src":"6989:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83063,"name":"uint256","nodeType":"ElementaryTypeName","src":"6989:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ValidatorsCommitment","nameLocation":"6793:20:169","scope":84181,"visibility":"public"},{"id":83099,"nodeType":"StructDefinition","src":"7075:1206:169","nodes":[],"canonicalName":"Gear.BatchCommitment","documentation":{"id":83066,"nodeType":"StructuredDocumentation","src":"7018:52:169","text":" @dev Represents batch commitment."},"members":[{"constant":false,"id":83069,"mutability":"mutable","name":"blockHash","nameLocation":"7212:9:169","nodeType":"VariableDeclaration","scope":83099,"src":"7204:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7204:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83072,"mutability":"mutable","name":"blockTimestamp","nameLocation":"7340:14:169","nodeType":"VariableDeclaration","scope":83099,"src":"7333:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83071,"name":"uint48","nodeType":"ElementaryTypeName","src":"7333:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83075,"mutability":"mutable","name":"previousCommittedBatchHash","nameLocation":"7453:26:169","nodeType":"VariableDeclaration","scope":83099,"src":"7445:34:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83074,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7445:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83078,"mutability":"mutable","name":"expiry","nameLocation":"7715:6:169","nodeType":"VariableDeclaration","scope":83099,"src":"7709:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83077,"name":"uint8","nodeType":"ElementaryTypeName","src":"7709:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83083,"mutability":"mutable","name":"chainCommitment","nameLocation":"7841:15:169","nodeType":"VariableDeclaration","scope":83099,"src":"7823:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83051_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"},"typeName":{"baseType":{"id":83081,"nodeType":"UserDefinedTypeName","pathNode":{"id":83080,"name":"ChainCommitment","nameLocations":["7823:15:169"],"nodeType":"IdentifierPath","referencedDeclaration":83051,"src":"7823:15:169"},"referencedDeclaration":83051,"src":"7823:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"id":83082,"nodeType":"ArrayTypeName","src":"7823:17:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83051_storage_$dyn_storage_ptr","typeString":"struct Gear.ChainCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83088,"mutability":"mutable","name":"codeCommitments","nameLocation":"7968:15:169","nodeType":"VariableDeclaration","scope":83099,"src":"7951:32:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83038_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"},"typeName":{"baseType":{"id":83086,"nodeType":"UserDefinedTypeName","pathNode":{"id":83085,"name":"CodeCommitment","nameLocations":["7951:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83038,"src":"7951:14:169"},"referencedDeclaration":83038,"src":"7951:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"id":83087,"nodeType":"ArrayTypeName","src":"7951:16:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83038_storage_$dyn_storage_ptr","typeString":"struct Gear.CodeCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83093,"mutability":"mutable","name":"rewardsCommitment","nameLocation":"8107:17:169","nodeType":"VariableDeclaration","scope":83099,"src":"8087:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83109_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"},"typeName":{"baseType":{"id":83091,"nodeType":"UserDefinedTypeName","pathNode":{"id":83090,"name":"RewardsCommitment","nameLocations":["8087:17:169"],"nodeType":"IdentifierPath","referencedDeclaration":83109,"src":"8087:17:169"},"referencedDeclaration":83109,"src":"8087:17:169","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"id":83092,"nodeType":"ArrayTypeName","src":"8087:19:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83109_storage_$dyn_storage_ptr","typeString":"struct Gear.RewardsCommitment[]"}},"visibility":"internal"},{"constant":false,"id":83098,"mutability":"mutable","name":"validatorsCommitment","nameLocation":"8254:20:169","nodeType":"VariableDeclaration","scope":83099,"src":"8231:43:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83065_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"},"typeName":{"baseType":{"id":83096,"nodeType":"UserDefinedTypeName","pathNode":{"id":83095,"name":"ValidatorsCommitment","nameLocations":["8231:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":83065,"src":"8231:20:169"},"referencedDeclaration":83065,"src":"8231:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"id":83097,"nodeType":"ArrayTypeName","src":"8231:22:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83065_storage_$dyn_storage_ptr","typeString":"struct Gear.ValidatorsCommitment[]"}},"visibility":"internal"}],"name":"BatchCommitment","nameLocation":"7082:15:169","scope":84181,"visibility":"public"},{"id":83109,"nodeType":"StructDefinition","src":"8346:144:169","nodes":[],"canonicalName":"Gear.RewardsCommitment","documentation":{"id":83100,"nodeType":"StructuredDocumentation","src":"8287:54:169","text":" @dev Represents rewards commitment."},"members":[{"constant":false,"id":83103,"mutability":"mutable","name":"operators","nameLocation":"8407:9:169","nodeType":"VariableDeclaration","scope":83109,"src":"8381:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83115_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"},"typeName":{"id":83102,"nodeType":"UserDefinedTypeName","pathNode":{"id":83101,"name":"OperatorRewardsCommitment","nameLocations":["8381:25:169"],"nodeType":"IdentifierPath","referencedDeclaration":83115,"src":"8381:25:169"},"referencedDeclaration":83115,"src":"8381:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83115_storage_ptr","typeString":"struct Gear.OperatorRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83106,"mutability":"mutable","name":"stakers","nameLocation":"8450:7:169","nodeType":"VariableDeclaration","scope":83109,"src":"8426:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":83105,"nodeType":"UserDefinedTypeName","pathNode":{"id":83104,"name":"StakerRewardsCommitment","nameLocations":["8426:23:169"],"nodeType":"IdentifierPath","referencedDeclaration":83125,"src":"8426:23:169"},"referencedDeclaration":83125,"src":"8426:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":83108,"mutability":"mutable","name":"timestamp","nameLocation":"8474:9:169","nodeType":"VariableDeclaration","scope":83109,"src":"8467:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83107,"name":"uint48","nodeType":"ElementaryTypeName","src":"8467:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"RewardsCommitment","nameLocation":"8353:17:169","scope":84181,"visibility":"public"},{"id":83115,"nodeType":"StructDefinition","src":"8564:86:169","nodes":[],"canonicalName":"Gear.OperatorRewardsCommitment","documentation":{"id":83110,"nodeType":"StructuredDocumentation","src":"8496:63:169","text":" @dev Represents operator rewards commitment."},"members":[{"constant":false,"id":83112,"mutability":"mutable","name":"amount","nameLocation":"8615:6:169","nodeType":"VariableDeclaration","scope":83115,"src":"8607:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83111,"name":"uint256","nodeType":"ElementaryTypeName","src":"8607:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83114,"mutability":"mutable","name":"root","nameLocation":"8639:4:169","nodeType":"VariableDeclaration","scope":83115,"src":"8631:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8631:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"OperatorRewardsCommitment","nameLocation":"8571:25:169","scope":84181,"visibility":"public"},{"id":83125,"nodeType":"StructDefinition","src":"8722:128:169","nodes":[],"canonicalName":"Gear.StakerRewardsCommitment","documentation":{"id":83116,"nodeType":"StructuredDocumentation","src":"8656:61:169","text":" @dev Represents staker rewards commitment."},"members":[{"constant":false,"id":83120,"mutability":"mutable","name":"distribution","nameLocation":"8779:12:169","nodeType":"VariableDeclaration","scope":83125,"src":"8763:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83131_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"},"typeName":{"baseType":{"id":83118,"nodeType":"UserDefinedTypeName","pathNode":{"id":83117,"name":"StakerRewards","nameLocations":["8763:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83131,"src":"8763:13:169"},"referencedDeclaration":83131,"src":"8763:13:169","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_storage_ptr","typeString":"struct Gear.StakerRewards"}},"id":83119,"nodeType":"ArrayTypeName","src":"8763:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83131_storage_$dyn_storage_ptr","typeString":"struct Gear.StakerRewards[]"}},"visibility":"internal"},{"constant":false,"id":83122,"mutability":"mutable","name":"totalAmount","nameLocation":"8809:11:169","nodeType":"VariableDeclaration","scope":83125,"src":"8801:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83121,"name":"uint256","nodeType":"ElementaryTypeName","src":"8801:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83124,"mutability":"mutable","name":"token","nameLocation":"8838:5:169","nodeType":"VariableDeclaration","scope":83125,"src":"8830:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83123,"name":"address","nodeType":"ElementaryTypeName","src":"8830:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"StakerRewardsCommitment","nameLocation":"8729:23:169","scope":84181,"visibility":"public"},{"id":83131,"nodeType":"StructDefinition","src":"8911:75:169","nodes":[],"canonicalName":"Gear.StakerRewards","documentation":{"id":83126,"nodeType":"StructuredDocumentation","src":"8856:50:169","text":" @dev Represents staker rewards."},"members":[{"constant":false,"id":83128,"mutability":"mutable","name":"vault","nameLocation":"8950:5:169","nodeType":"VariableDeclaration","scope":83131,"src":"8942:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83127,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83130,"mutability":"mutable","name":"amount","nameLocation":"8973:6:169","nodeType":"VariableDeclaration","scope":83131,"src":"8965:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83129,"name":"uint256","nodeType":"ElementaryTypeName","src":"8965:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"StakerRewards","nameLocation":"8918:13:169","scope":84181,"visibility":"public"},{"id":83139,"nodeType":"EnumDefinition","src":"9061:960:169","nodes":[],"canonicalName":"Gear.CodeState","documentation":{"id":83132,"nodeType":"StructuredDocumentation","src":"8992:64:169","text":" @dev Represents the state of code commitment."},"members":[{"documentation":{"id":83133,"nodeType":"StructuredDocumentation","src":"9086:260:169","text":" @dev The code commitment is in an unknown state (`CodeState.Unknown = 0 as uint8`).\n This is the default state for all code commitments,\n and it means that the code commitment has not been processed yet."},"id":83134,"name":"Unknown","nameLocation":"9355:7:169","nodeType":"EnumValue","src":"9355:7:169"},{"documentation":{"id":83135,"nodeType":"StructuredDocumentation","src":"9372:465:169","text":" @dev The code commitment has requested validation by user (`CodeState.ValidationRequested = 1 as uint8`).\n Users calls `IRouter(router).requestCodeValidation(bytes32 _codeId)` to request code validation and\n attaches sidecar to this transaction (the transaction is encoded in EIP-7594 format),\n then validators can validate the code commitment and set `CodeState.Validated` in case of success."},"id":83136,"name":"ValidationRequested","nameLocation":"9846:19:169","nodeType":"EnumValue","src":"9846:19:169"},{"documentation":{"id":83137,"nodeType":"StructuredDocumentation","src":"9875:122:169","text":" @dev The code commitment has been validated by validators (`CodeState.Validated = 2 as uint8`)."},"id":83138,"name":"Validated","nameLocation":"10006:9:169","nodeType":"EnumValue","src":"10006:9:169"}],"name":"CodeState","nameLocation":"9066:9:169"},{"id":83145,"nodeType":"StructDefinition","src":"10101:81:169","nodes":[],"canonicalName":"Gear.CommittedBatchInfo","documentation":{"id":83140,"nodeType":"StructuredDocumentation","src":"10027:69:169","text":" @dev Represents information about committed batch."},"members":[{"constant":false,"id":83142,"mutability":"mutable","name":"hash","nameLocation":"10145:4:169","nodeType":"VariableDeclaration","scope":83145,"src":"10137:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10137:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83144,"mutability":"mutable","name":"timestamp","nameLocation":"10166:9:169","nodeType":"VariableDeclaration","scope":83145,"src":"10159:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83143,"name":"uint48","nodeType":"ElementaryTypeName","src":"10159:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"CommittedBatchInfo","nameLocation":"10108:18:169","scope":84181,"visibility":"public"},{"id":83151,"nodeType":"StructDefinition","src":"10249:92:169","nodes":[],"canonicalName":"Gear.ComputationSettings","documentation":{"id":83146,"nodeType":"StructuredDocumentation","src":"10188:56:169","text":" @dev Represents computation settings."},"members":[{"constant":false,"id":83148,"mutability":"mutable","name":"threshold","nameLocation":"10293:9:169","nodeType":"VariableDeclaration","scope":83151,"src":"10286:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":83147,"name":"uint64","nodeType":"ElementaryTypeName","src":"10286:6:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":83150,"mutability":"mutable","name":"wvaraPerSecond","nameLocation":"10320:14:169","nodeType":"VariableDeclaration","scope":83151,"src":"10312:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83149,"name":"uint128","nodeType":"ElementaryTypeName","src":"10312:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ComputationSettings","nameLocation":"10256:19:169","scope":84181,"visibility":"public"},{"id":83159,"nodeType":"StructDefinition","src":"10419:102:169","nodes":[],"canonicalName":"Gear.GenesisBlockInfo","documentation":{"id":83152,"nodeType":"StructuredDocumentation","src":"10347:67:169","text":" @dev Represents information about genesis block."},"members":[{"constant":false,"id":83154,"mutability":"mutable","name":"hash","nameLocation":"10461:4:169","nodeType":"VariableDeclaration","scope":83159,"src":"10453:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10453:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83156,"mutability":"mutable","name":"number","nameLocation":"10482:6:169","nodeType":"VariableDeclaration","scope":83159,"src":"10475:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":83155,"name":"uint32","nodeType":"ElementaryTypeName","src":"10475:6:169","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":83158,"mutability":"mutable","name":"timestamp","nameLocation":"10505:9:169","nodeType":"VariableDeclaration","scope":83159,"src":"10498:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83157,"name":"uint48","nodeType":"ElementaryTypeName","src":"10498:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"name":"GenesisBlockInfo","nameLocation":"10426:16:169","scope":84181,"visibility":"public"},{"id":83180,"nodeType":"StructDefinition","src":"10575:1092:169","nodes":[],"canonicalName":"Gear.Message","documentation":{"id":83160,"nodeType":"StructuredDocumentation","src":"10527:43:169","text":" @dev Represents message."},"members":[{"constant":false,"id":83163,"mutability":"mutable","name":"id","nameLocation":"10700:2:169","nodeType":"VariableDeclaration","scope":83180,"src":"10692:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10692:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83166,"mutability":"mutable","name":"destination","nameLocation":"10896:11:169","nodeType":"VariableDeclaration","scope":83180,"src":"10888:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83165,"name":"address","nodeType":"ElementaryTypeName","src":"10888:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83169,"mutability":"mutable","name":"payload","nameLocation":"10991:7:169","nodeType":"VariableDeclaration","scope":83180,"src":"10985:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":83168,"name":"bytes","nodeType":"ElementaryTypeName","src":"10985:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":83172,"mutability":"mutable","name":"value","nameLocation":"11095:5:169","nodeType":"VariableDeclaration","scope":83180,"src":"11087:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83171,"name":"uint128","nodeType":"ElementaryTypeName","src":"11087:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83176,"mutability":"mutable","name":"replyDetails","nameLocation":"11343:12:169","nodeType":"VariableDeclaration","scope":83180,"src":"11330:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_storage_ptr","typeString":"struct Gear.ReplyDetails"},"typeName":{"id":83175,"nodeType":"UserDefinedTypeName","pathNode":{"id":83174,"name":"ReplyDetails","nameLocations":["11330:12:169"],"nodeType":"IdentifierPath","referencedDeclaration":83219,"src":"11330:12:169"},"referencedDeclaration":83219,"src":"11330:12:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_storage_ptr","typeString":"struct Gear.ReplyDetails"}},"visibility":"internal"},{"constant":false,"id":83179,"mutability":"mutable","name":"call","nameLocation":"11656:4:169","nodeType":"VariableDeclaration","scope":83180,"src":"11651:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83178,"name":"bool","nodeType":"ElementaryTypeName","src":"11651:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Message","nameLocation":"10582:7:169","scope":84181,"visibility":"public"},{"id":83211,"nodeType":"StructDefinition","src":"11731:1505:169","nodes":[],"canonicalName":"Gear.ProtocolData","documentation":{"id":83181,"nodeType":"StructuredDocumentation","src":"11673:53:169","text":" @dev Represents the protocol data."},"members":[{"constant":false,"id":83187,"mutability":"mutable","name":"codes","nameLocation":"12005:5:169","nodeType":"VariableDeclaration","scope":83211,"src":"11975:35:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"typeName":{"id":83186,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11983:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"11975:29:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83185,"nodeType":"UserDefinedTypeName","pathNode":{"id":83184,"name":"CodeState","nameLocations":["11994:9:169"],"nodeType":"IdentifierPath","referencedDeclaration":83139,"src":"11994:9:169"},"referencedDeclaration":83139,"src":"11994:9:169","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}}},"visibility":"internal"},{"constant":false,"id":83192,"mutability":"mutable","name":"programs","nameLocation":"12223:8:169","nodeType":"VariableDeclaration","scope":83211,"src":"12195:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":83191,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":83189,"name":"address","nodeType":"ElementaryTypeName","src":"12203:7:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"12195:27:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":83190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12214:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"internal"},{"constant":false,"id":83195,"mutability":"mutable","name":"programsCount","nameLocation":"12340:13:169","nodeType":"VariableDeclaration","scope":83211,"src":"12332:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83194,"name":"uint256","nodeType":"ElementaryTypeName","src":"12332:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83198,"mutability":"mutable","name":"validatedCodesCount","nameLocation":"12468:19:169","nodeType":"VariableDeclaration","scope":83211,"src":"12460:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83197,"name":"uint256","nodeType":"ElementaryTypeName","src":"12460:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83201,"mutability":"mutable","name":"maxValidators","nameLocation":"12586:13:169","nodeType":"VariableDeclaration","scope":83211,"src":"12579:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":83200,"name":"uint16","nodeType":"ElementaryTypeName","src":"12579:6:169","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":83204,"mutability":"mutable","name":"requestCodeValidationBaseFee","nameLocation":"12777:28:169","nodeType":"VariableDeclaration","scope":83211,"src":"12769:36:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83203,"name":"uint256","nodeType":"ElementaryTypeName","src":"12769:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83207,"mutability":"mutable","name":"requestCodeValidationExtraFee","nameLocation":"12993:29:169","nodeType":"VariableDeclaration","scope":83211,"src":"12985:37:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83206,"name":"uint256","nodeType":"ElementaryTypeName","src":"12985:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83210,"mutability":"mutable","name":"protocolVersion","nameLocation":"13214:15:169","nodeType":"VariableDeclaration","scope":83211,"src":"13206:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83209,"name":"uint256","nodeType":"ElementaryTypeName","src":"13206:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ProtocolData","nameLocation":"11738:12:169","scope":84181,"visibility":"public"},{"id":83219,"nodeType":"StructDefinition","src":"13302:564:169","nodes":[],"canonicalName":"Gear.ReplyDetails","documentation":{"id":83212,"nodeType":"StructuredDocumentation","src":"13242:55:169","text":" @dev Represents details about reply."},"members":[{"constant":false,"id":83215,"mutability":"mutable","name":"to","nameLocation":"13511:2:169","nodeType":"VariableDeclaration","scope":83219,"src":"13503:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13503:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83218,"mutability":"mutable","name":"code","nameLocation":"13855:4:169","nodeType":"VariableDeclaration","scope":83219,"src":"13848:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":83217,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13848:6:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"name":"ReplyDetails","nameLocation":"13309:12:169","scope":84181,"visibility":"public"},{"id":83249,"nodeType":"StructDefinition","src":"14143:1608:169","nodes":[],"canonicalName":"Gear.StateTransition","documentation":{"id":83220,"nodeType":"StructuredDocumentation","src":"13872:266:169","text":" @dev Represents state transition of `Mirror`.\n Most important type in this, in Rust we use this type to mutate state of `Mirror` instances.\n (see `ethexe/common/src/gear.rs` for more details on how this type is used in Rust)."},"members":[{"constant":false,"id":83223,"mutability":"mutable","name":"actorId","nameLocation":"14370:7:169","nodeType":"VariableDeclaration","scope":83249,"src":"14362:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83222,"name":"address","nodeType":"ElementaryTypeName","src":"14362:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83226,"mutability":"mutable","name":"newStateHash","nameLocation":"14551:12:169","nodeType":"VariableDeclaration","scope":83249,"src":"14543:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14543:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83229,"mutability":"mutable","name":"exited","nameLocation":"14658:6:169","nodeType":"VariableDeclaration","scope":83249,"src":"14653:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83228,"name":"bool","nodeType":"ElementaryTypeName","src":"14653:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83232,"mutability":"mutable","name":"inheritor","nameLocation":"14860:9:169","nodeType":"VariableDeclaration","scope":83249,"src":"14852:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83231,"name":"address","nodeType":"ElementaryTypeName","src":"14852:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83235,"mutability":"mutable","name":"valueToReceive","nameLocation":"15238:14:169","nodeType":"VariableDeclaration","scope":83249,"src":"15230:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83234,"name":"uint128","nodeType":"ElementaryTypeName","src":"15230:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83238,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"15534:26:169","nodeType":"VariableDeclaration","scope":83249,"src":"15529:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83237,"name":"bool","nodeType":"ElementaryTypeName","src":"15529:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83243,"mutability":"mutable","name":"valueClaims","nameLocation":"15646:11:169","nodeType":"VariableDeclaration","scope":83249,"src":"15633:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83289_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":83241,"nodeType":"UserDefinedTypeName","pathNode":{"id":83240,"name":"ValueClaim","nameLocations":["15633:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83289,"src":"15633:10:169"},"referencedDeclaration":83289,"src":"15633:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":83242,"nodeType":"ArrayTypeName","src":"15633:12:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83289_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"},{"constant":false,"id":83248,"mutability":"mutable","name":"messages","nameLocation":"15736:8:169","nodeType":"VariableDeclaration","scope":83249,"src":"15726:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83180_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":83246,"nodeType":"UserDefinedTypeName","pathNode":{"id":83245,"name":"Message","nameLocations":["15726:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83180,"src":"15726:7:169"},"referencedDeclaration":83180,"src":"15726:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_storage_ptr","typeString":"struct Gear.Message"}},"id":83247,"nodeType":"ArrayTypeName","src":"15726:9:169","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83180_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"name":"StateTransition","nameLocation":"14150:15:169","scope":84181,"visibility":"public"},{"id":83257,"nodeType":"StructDefinition","src":"15811:104:169","nodes":[],"canonicalName":"Gear.Timelines","documentation":{"id":83250,"nodeType":"StructuredDocumentation","src":"15757:49:169","text":" @dev Represents the timelines."},"members":[{"constant":false,"id":83252,"mutability":"mutable","name":"era","nameLocation":"15846:3:169","nodeType":"VariableDeclaration","scope":83257,"src":"15838:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83251,"name":"uint256","nodeType":"ElementaryTypeName","src":"15838:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83254,"mutability":"mutable","name":"election","nameLocation":"15867:8:169","nodeType":"VariableDeclaration","scope":83257,"src":"15859:16:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83253,"name":"uint256","nodeType":"ElementaryTypeName","src":"15859:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83256,"mutability":"mutable","name":"validationDelay","nameLocation":"15893:15:169","nodeType":"VariableDeclaration","scope":83257,"src":"15885:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83255,"name":"uint256","nodeType":"ElementaryTypeName","src":"15885:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Timelines","nameLocation":"15818:9:169","scope":84181,"visibility":"public"},{"id":83269,"nodeType":"StructDefinition","src":"15985:171:169","nodes":[],"canonicalName":"Gear.ValidationSettings","documentation":{"id":83258,"nodeType":"StructuredDocumentation","src":"15921:59:169","text":" @dev Represents the validation settings."},"members":[{"constant":false,"id":83260,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16029:18:169","nodeType":"VariableDeclaration","scope":83269,"src":"16021:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83259,"name":"uint128","nodeType":"ElementaryTypeName","src":"16021:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83262,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16065:20:169","nodeType":"VariableDeclaration","scope":83269,"src":"16057:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83261,"name":"uint128","nodeType":"ElementaryTypeName","src":"16057:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83265,"mutability":"mutable","name":"validators0","nameLocation":"16106:11:169","nodeType":"VariableDeclaration","scope":83269,"src":"16095:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83264,"nodeType":"UserDefinedTypeName","pathNode":{"id":83263,"name":"Validators","nameLocations":["16095:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"16095:10:169"},"referencedDeclaration":83007,"src":"16095:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":83268,"mutability":"mutable","name":"validators1","nameLocation":"16138:11:169","nodeType":"VariableDeclaration","scope":83269,"src":"16127:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83267,"nodeType":"UserDefinedTypeName","pathNode":{"id":83266,"name":"Validators","nameLocations":["16127:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"16127:10:169"},"referencedDeclaration":83007,"src":"16127:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"name":"ValidationSettings","nameLocation":"15992:18:169","scope":84181,"visibility":"public"},{"id":83281,"nodeType":"StructDefinition","src":"16234:183:169","nodes":[],"canonicalName":"Gear.ValidationSettingsView","documentation":{"id":83270,"nodeType":"StructuredDocumentation","src":"16162:67:169","text":" @dev Represents the view of validation settings."},"members":[{"constant":false,"id":83272,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"16282:18:169","nodeType":"VariableDeclaration","scope":83281,"src":"16274:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83271,"name":"uint128","nodeType":"ElementaryTypeName","src":"16274:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83274,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"16318:20:169","nodeType":"VariableDeclaration","scope":83281,"src":"16310:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83273,"name":"uint128","nodeType":"ElementaryTypeName","src":"16310:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83277,"mutability":"mutable","name":"validators0","nameLocation":"16363:11:169","nodeType":"VariableDeclaration","scope":83281,"src":"16348:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83276,"nodeType":"UserDefinedTypeName","pathNode":{"id":83275,"name":"ValidatorsView","nameLocations":["16348:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83019,"src":"16348:14:169"},"referencedDeclaration":83019,"src":"16348:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"},{"constant":false,"id":83280,"mutability":"mutable","name":"validators1","nameLocation":"16399:11:169","nodeType":"VariableDeclaration","scope":83281,"src":"16384:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_storage_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":83279,"nodeType":"UserDefinedTypeName","pathNode":{"id":83278,"name":"ValidatorsView","nameLocations":["16384:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83019,"src":"16384:14:169"},"referencedDeclaration":83019,"src":"16384:14:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"name":"ValidationSettingsView","nameLocation":"16241:22:169","scope":84181,"visibility":"public"},{"id":83289,"nodeType":"StructDefinition","src":"16479:104:169","nodes":[],"canonicalName":"Gear.ValueClaim","documentation":{"id":83282,"nodeType":"StructuredDocumentation","src":"16423:51:169","text":" @dev Represents claim for value."},"members":[{"constant":false,"id":83284,"mutability":"mutable","name":"messageId","nameLocation":"16515:9:169","nodeType":"VariableDeclaration","scope":83289,"src":"16507:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16507:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83286,"mutability":"mutable","name":"destination","nameLocation":"16542:11:169","nodeType":"VariableDeclaration","scope":83289,"src":"16534:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83285,"name":"address","nodeType":"ElementaryTypeName","src":"16534:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83288,"mutability":"mutable","name":"value","nameLocation":"16571:5:169","nodeType":"VariableDeclaration","scope":83289,"src":"16563:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83287,"name":"uint128","nodeType":"ElementaryTypeName","src":"16563:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"ValueClaim","nameLocation":"16486:10:169","scope":84181,"visibility":"public"},{"id":83311,"nodeType":"StructDefinition","src":"16663:436:169","nodes":[],"canonicalName":"Gear.SymbioticContracts","documentation":{"id":83290,"nodeType":"StructuredDocumentation","src":"16589:69:169","text":" @dev Represents the symbiotic contracts addresses."},"members":[{"constant":false,"id":83292,"mutability":"mutable","name":"vaultRegistry","nameLocation":"16739:13:169","nodeType":"VariableDeclaration","scope":83311,"src":"16731:21:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83291,"name":"address","nodeType":"ElementaryTypeName","src":"16731:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83294,"mutability":"mutable","name":"operatorRegistry","nameLocation":"16770:16:169","nodeType":"VariableDeclaration","scope":83311,"src":"16762:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83293,"name":"address","nodeType":"ElementaryTypeName","src":"16762:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83296,"mutability":"mutable","name":"networkRegistry","nameLocation":"16804:15:169","nodeType":"VariableDeclaration","scope":83311,"src":"16796:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83295,"name":"address","nodeType":"ElementaryTypeName","src":"16796:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83298,"mutability":"mutable","name":"middlewareService","nameLocation":"16837:17:169","nodeType":"VariableDeclaration","scope":83311,"src":"16829:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83297,"name":"address","nodeType":"ElementaryTypeName","src":"16829:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83300,"mutability":"mutable","name":"networkOptIn","nameLocation":"16872:12:169","nodeType":"VariableDeclaration","scope":83311,"src":"16864:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83299,"name":"address","nodeType":"ElementaryTypeName","src":"16864:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83302,"mutability":"mutable","name":"stakerRewardsFactory","nameLocation":"16902:20:169","nodeType":"VariableDeclaration","scope":83311,"src":"16894:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83301,"name":"address","nodeType":"ElementaryTypeName","src":"16894:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83304,"mutability":"mutable","name":"operatorRewards","nameLocation":"16976:15:169","nodeType":"VariableDeclaration","scope":83311,"src":"16968:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83303,"name":"address","nodeType":"ElementaryTypeName","src":"16968:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83306,"mutability":"mutable","name":"roleSlashRequester","nameLocation":"17009:18:169","nodeType":"VariableDeclaration","scope":83311,"src":"17001:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83305,"name":"address","nodeType":"ElementaryTypeName","src":"17001:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83308,"mutability":"mutable","name":"roleSlashExecutor","nameLocation":"17045:17:169","nodeType":"VariableDeclaration","scope":83311,"src":"17037:25:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83307,"name":"address","nodeType":"ElementaryTypeName","src":"17037:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83310,"mutability":"mutable","name":"vetoResolver","nameLocation":"17080:12:169","nodeType":"VariableDeclaration","scope":83311,"src":"17072:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83309,"name":"address","nodeType":"ElementaryTypeName","src":"17072:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"SymbioticContracts","nameLocation":"16670:18:169","scope":84181,"visibility":"public"},{"id":83315,"nodeType":"EnumDefinition","src":"17172:55:169","nodes":[],"canonicalName":"Gear.SignatureType","documentation":{"id":83312,"nodeType":"StructuredDocumentation","src":"17105:62:169","text":" @dev Represents the type of signature used."},"members":[{"id":83313,"name":"FROST","nameLocation":"17201:5:169","nodeType":"EnumValue","src":"17201:5:169"},{"id":83314,"name":"ECDSA","nameLocation":"17216:5:169","nodeType":"EnumValue","src":"17216:5:169"}],"name":"SignatureType","nameLocation":"17177:13:169"},{"id":83337,"nodeType":"FunctionDefinition","src":"17517:260:169","nodes":[],"body":{"id":83336,"nodeType":"Block","src":"17678:99:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83330,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83318,"src":"17722:16:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83331,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83320,"src":"17740:5:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83332,"name":"_lastAdvancedEthBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83322,"src":"17747:21:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83328,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17705:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17709:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"17705:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17705:64:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83327,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17695:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17695:75:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83326,"id":83335,"nodeType":"Return","src":"17688:82:169"}]},"documentation":{"id":83316,"nodeType":"StructuredDocumentation","src":"17233:279:169","text":" @dev Computes the hash of `ChainCommitment`.\n @param _transitionsHash The hash of the transitions in the chain commitment.\n @param _head The head of the chain commitment.\n @param _lastAdvancedEthBlock The latest folded-in Ethereum block hash."},"implemented":true,"kind":"function","modifiers":[],"name":"chainCommitmentHash","nameLocation":"17526:19:169","parameters":{"id":83323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83318,"mutability":"mutable","name":"_transitionsHash","nameLocation":"17554:16:169","nodeType":"VariableDeclaration","scope":83337,"src":"17546:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17546:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83320,"mutability":"mutable","name":"_head","nameLocation":"17580:5:169","nodeType":"VariableDeclaration","scope":83337,"src":"17572:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17572:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83322,"mutability":"mutable","name":"_lastAdvancedEthBlock","nameLocation":"17595:21:169","nodeType":"VariableDeclaration","scope":83337,"src":"17587:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17587:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17545:72:169"},"returnParameters":{"id":83326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83337,"src":"17665:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17665:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17664:9:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83354,"nodeType":"FunctionDefinition","src":"17946:336:169","nodes":[],"body":{"id":83353,"nodeType":"Block","src":"18034:248:169","nodes":[],"statements":[{"assignments":[83348],"declarations":[{"constant":false,"id":83348,"mutability":"mutable","name":"_codeCommitmentHash","nameLocation":"18052:19:169","nodeType":"VariableDeclaration","scope":83353,"src":"18044:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18044:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83349,"nodeType":"VariableDeclarationStatement","src":"18044:27:169"},{"AST":{"nativeSrc":"18106:134:169","nodeType":"YulBlock","src":"18106:134:169","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18127:4:169","nodeType":"YulLiteral","src":"18127:4:169","type":"","value":"0x00"},{"name":"codeId","nativeSrc":"18133:6:169","nodeType":"YulIdentifier","src":"18133:6:169"}],"functionName":{"name":"mstore","nativeSrc":"18120:6:169","nodeType":"YulIdentifier","src":"18120:6:169"},"nativeSrc":"18120:20:169","nodeType":"YulFunctionCall","src":"18120:20:169"},"nativeSrc":"18120:20:169","nodeType":"YulExpressionStatement","src":"18120:20:169"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18161:4:169","nodeType":"YulLiteral","src":"18161:4:169","type":"","value":"0x20"},{"name":"valid","nativeSrc":"18167:5:169","nodeType":"YulIdentifier","src":"18167:5:169"}],"functionName":{"name":"mstore8","nativeSrc":"18153:7:169","nodeType":"YulIdentifier","src":"18153:7:169"},"nativeSrc":"18153:20:169","nodeType":"YulFunctionCall","src":"18153:20:169"},"nativeSrc":"18153:20:169","nodeType":"YulExpressionStatement","src":"18153:20:169"},{"nativeSrc":"18186:44:169","nodeType":"YulAssignment","src":"18186:44:169","value":{"arguments":[{"kind":"number","nativeSrc":"18219:4:169","nodeType":"YulLiteral","src":"18219:4:169","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18225:4:169","nodeType":"YulLiteral","src":"18225:4:169","type":"","value":"0x21"}],"functionName":{"name":"keccak256","nativeSrc":"18209:9:169","nodeType":"YulIdentifier","src":"18209:9:169"},"nativeSrc":"18209:21:169","nodeType":"YulFunctionCall","src":"18209:21:169"},"variableNames":[{"name":"_codeCommitmentHash","nativeSrc":"18186:19:169","nodeType":"YulIdentifier","src":"18186:19:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83348,"isOffset":false,"isSlot":false,"src":"18186:19:169","valueSize":1},{"declaration":83340,"isOffset":false,"isSlot":false,"src":"18133:6:169","valueSize":1},{"declaration":83342,"isOffset":false,"isSlot":false,"src":"18167:5:169","valueSize":1}],"flags":["memory-safe"],"id":83350,"nodeType":"InlineAssembly","src":"18081:159:169"},{"expression":{"id":83351,"name":"_codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83348,"src":"18256:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83346,"id":83352,"nodeType":"Return","src":"18249:26:169"}]},"documentation":{"id":83338,"nodeType":"StructuredDocumentation","src":"17783:158:169","text":" @dev Computes the hash of `CodeCommitment`.\n @param codeId The ID of the code.\n @param valid The validation status of the code."},"implemented":true,"kind":"function","modifiers":[],"name":"codeCommitmentHash","nameLocation":"17955:18:169","parameters":{"id":83343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83340,"mutability":"mutable","name":"codeId","nameLocation":"17982:6:169","nodeType":"VariableDeclaration","scope":83354,"src":"17974:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17974:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83342,"mutability":"mutable","name":"valid","nameLocation":"17995:5:169","nodeType":"VariableDeclaration","scope":83354,"src":"17990:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83341,"name":"bool","nodeType":"ElementaryTypeName","src":"17990:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17973:28:169"},"returnParameters":{"id":83346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83354,"src":"18025:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18025:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18024:9:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83376,"nodeType":"FunctionDefinition","src":"18559:273:169","nodes":[],"body":{"id":83375,"nodeType":"Block","src":"18727:105:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83369,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83357,"src":"18771:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83370,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83359,"src":"18793:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83371,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83361,"src":"18813:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18754:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18758:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"18754:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18754:70:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83366,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18744:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18744:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83365,"id":83374,"nodeType":"Return","src":"18737:88:169"}]},"documentation":{"id":83355,"nodeType":"StructuredDocumentation","src":"18288:266:169","text":" @dev Computes the hash of `RewardsCommitment`.\n @param _operatorRewardsHash The hash of the operator rewards.\n @param _stakerRewardsHash The hash of the staker rewards.\n @param _timestamp The timestamp for the rewards commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"rewardsCommitmentHash","nameLocation":"18568:21:169","parameters":{"id":83362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83357,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"18598:20:169","nodeType":"VariableDeclaration","scope":83376,"src":"18590:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18590:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83359,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"18628:18:169","nodeType":"VariableDeclaration","scope":83376,"src":"18620:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83358,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18620:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83361,"mutability":"mutable","name":"_timestamp","nameLocation":"18655:10:169","nodeType":"VariableDeclaration","scope":83376,"src":"18648:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83360,"name":"uint48","nodeType":"ElementaryTypeName","src":"18648:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"18589:77:169"},"returnParameters":{"id":83365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83364,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83376,"src":"18714:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18714:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18713:9:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83404,"nodeType":"FunctionDefinition","src":"18963:425:169","nodes":[],"body":{"id":83403,"nodeType":"Block","src":"19074:314:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83388,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83380,"src":"19148:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19159:22:169","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83054,"src":"19148:33:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":83390,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83380,"src":"19199:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19210:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"19199:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19230:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"19199:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83393,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83380,"src":"19249:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19260:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"19249:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":83395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19280:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"19249:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":83396,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83380,"src":"19299:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19310:10:169","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83062,"src":"19299:21:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"expression":{"id":83398,"name":"commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83380,"src":"19338:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_memory_ptr","typeString":"struct Gear.ValidatorsCommitment memory"}},"id":83399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19349:8:169","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83064,"src":"19338:19:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83386,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19114:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19118:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"19114:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19114:257:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83385,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19091:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19091:290:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83384,"id":83402,"nodeType":"Return","src":"19084:297:169"}]},"documentation":{"id":83377,"nodeType":"StructuredDocumentation","src":"18838:120:169","text":" @dev Computes the hash of `ValidatorsCommitment`.\n @param commitment The validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCommitmentHash","nameLocation":"18972:24:169","parameters":{"id":83381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83380,"mutability":"mutable","name":"commitment","nameLocation":"19030:10:169","nodeType":"VariableDeclaration","scope":83404,"src":"18997:43:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_memory_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":83379,"nodeType":"UserDefinedTypeName","pathNode":{"id":83378,"name":"Gear.ValidatorsCommitment","nameLocations":["18997:4:169","19002:20:169"],"nodeType":"IdentifierPath","referencedDeclaration":83065,"src":"18997:25:169"},"referencedDeclaration":83065,"src":"18997:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"src":"18996:45:169"},"returnParameters":{"id":83384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83404,"src":"19065:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83382,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19065:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19064:9:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83441,"nodeType":"FunctionDefinition","src":"20001:697:169","nodes":[],"body":{"id":83440,"nodeType":"Block","src":"20338:360:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83429,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83407,"src":"20412:6:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83430,"name":"_timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83409,"src":"20436:10:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":83431,"name":"_prevCommittedBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83411,"src":"20464:19:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83432,"name":"_expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83413,"src":"20501:7:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83433,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83415,"src":"20526:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83434,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83417,"src":"20564:20:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83435,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83419,"src":"20602:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83436,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83421,"src":"20642:25:169","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83427,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20378:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20382:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20378:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20378:303:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83426,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20355:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20355:336:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83425,"id":83439,"nodeType":"Return","src":"20348:343:169"}]},"documentation":{"id":83405,"nodeType":"StructuredDocumentation","src":"19394:602:169","text":" @dev Computes the hash of `BatchCommitment`.\n @param _block The hash of the block.\n @param _timestamp The timestamp for the batch commitment.\n @param _prevCommittedBlock The hash of the previous committed block.\n @param _expiry The expiry time for the batch commitment.\n @param _chainCommitmentHash The hash of the chain commitment.\n @param _codeCommitmentsHash The hash of the code commitments.\n @param _rewardsCommitmentHash The hash of the rewards commitment.\n @param _validatorsCommitmentHash The hash of the validators commitment."},"implemented":true,"kind":"function","modifiers":[],"name":"batchCommitmentHash","nameLocation":"20010:19:169","parameters":{"id":83422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83407,"mutability":"mutable","name":"_block","nameLocation":"20047:6:169","nodeType":"VariableDeclaration","scope":83441,"src":"20039:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20039:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83409,"mutability":"mutable","name":"_timestamp","nameLocation":"20070:10:169","nodeType":"VariableDeclaration","scope":83441,"src":"20063:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":83408,"name":"uint48","nodeType":"ElementaryTypeName","src":"20063:6:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":83411,"mutability":"mutable","name":"_prevCommittedBlock","nameLocation":"20098:19:169","nodeType":"VariableDeclaration","scope":83441,"src":"20090:27:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20090:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83413,"mutability":"mutable","name":"_expiry","nameLocation":"20133:7:169","nodeType":"VariableDeclaration","scope":83441,"src":"20127:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83412,"name":"uint8","nodeType":"ElementaryTypeName","src":"20127:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":83415,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"20158:20:169","nodeType":"VariableDeclaration","scope":83441,"src":"20150:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20150:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83417,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"20196:20:169","nodeType":"VariableDeclaration","scope":83441,"src":"20188:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20188:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83419,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"20234:22:169","nodeType":"VariableDeclaration","scope":83441,"src":"20226:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20226:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83421,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"20274:25:169","nodeType":"VariableDeclaration","scope":83441,"src":"20266:33:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20266:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20029:276:169"},"returnParameters":{"id":83425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83424,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83441,"src":"20329:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20329:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20328:9:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83473,"nodeType":"FunctionDefinition","src":"20829:407:169","nodes":[],"body":{"id":83472,"nodeType":"Block","src":"20906:330:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83453,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83445,"src":"20980:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20988:2:169","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83163,"src":"20980:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83455,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83445,"src":"21008:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21016:11:169","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"21008:19:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":83457,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83445,"src":"21045:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21053:7:169","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83169,"src":"21045:15:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":83459,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83445,"src":"21078:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21086:5:169","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"21078:13:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83461,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83445,"src":"21109:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21117:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"21109:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21130:2:169","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83215,"src":"21109:23:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":83464,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83445,"src":"21150:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21158:12:169","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"21150:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_memory_ptr","typeString":"struct Gear.ReplyDetails memory"}},"id":83466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21171:4:169","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83218,"src":"21150:25:169","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":83467,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83445,"src":"21193:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_memory_ptr","typeString":"struct Gear.Message memory"}},"id":83468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21201:4:169","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83179,"src":"21193:12:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":83451,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20946:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20950:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"20946:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20946:273:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83450,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20923:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20923:306:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83449,"id":83471,"nodeType":"Return","src":"20916:313:169"}]},"documentation":{"id":83442,"nodeType":"StructuredDocumentation","src":"20704:120:169","text":" @dev Computes the hash of `Message`.\n @param message The message for which to compute the hash."},"implemented":true,"kind":"function","modifiers":[],"name":"messageHash","nameLocation":"20838:11:169","parameters":{"id":83446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83445,"mutability":"mutable","name":"message","nameLocation":"20865:7:169","nodeType":"VariableDeclaration","scope":83473,"src":"20850:22:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_memory_ptr","typeString":"struct Gear.Message"},"typeName":{"id":83444,"nodeType":"UserDefinedTypeName","pathNode":{"id":83443,"name":"Message","nameLocations":["20850:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":83180,"src":"20850:7:169"},"referencedDeclaration":83180,"src":"20850:7:169","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"20849:24:169"},"returnParameters":{"id":83449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83473,"src":"20897:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20897:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20896:9:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83495,"nodeType":"FunctionDefinition","src":"21443:199:169","nodes":[],"body":{"id":83494,"nodeType":"Block","src":"21557:85:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83488,"name":"_messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83476,"src":"21601:10:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83489,"name":"_destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83478,"src":"21613:12:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83490,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83480,"src":"21627:6:169","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":83486,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21584:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21588:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"21584:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21584:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83485,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21574:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21574:61:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83484,"id":83493,"nodeType":"Return","src":"21567:68:169"}]},"documentation":{"id":83474,"nodeType":"StructuredDocumentation","src":"21242:196:169","text":" @dev Computes the hash of `ValueClaim`.\n @param _messageId The message ID.\n @param _destination The destination address.\n @param _value The value of the claim."},"implemented":true,"kind":"function","modifiers":[],"name":"valueClaimHash","nameLocation":"21452:14:169","parameters":{"id":83481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83476,"mutability":"mutable","name":"_messageId","nameLocation":"21475:10:169","nodeType":"VariableDeclaration","scope":83495,"src":"21467:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21467:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83478,"mutability":"mutable","name":"_destination","nameLocation":"21495:12:169","nodeType":"VariableDeclaration","scope":83495,"src":"21487:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83477,"name":"address","nodeType":"ElementaryTypeName","src":"21487:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83480,"mutability":"mutable","name":"_value","nameLocation":"21517:6:169","nodeType":"VariableDeclaration","scope":83495,"src":"21509:14:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83479,"name":"uint128","nodeType":"ElementaryTypeName","src":"21509:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21466:58:169"},"returnParameters":{"id":83484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83495,"src":"21548:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21548:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21547:9:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83532,"nodeType":"FunctionDefinition","src":"22146:646:169","nodes":[],"body":{"id":83531,"nodeType":"Block","src":"22456:336:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":83520,"name":"actor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83498,"src":"22530:5:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83521,"name":"newStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83500,"src":"22553:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83522,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83502,"src":"22583:6:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83523,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83504,"src":"22607:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83524,"name":"valueToReceive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83506,"src":"22634:14:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":83525,"name":"valueToReceiveNegativeSign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83508,"src":"22666:26:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":83526,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83510,"src":"22710:15:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83527,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83512,"src":"22743:18:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22496:3:169","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22500:12:169","memberName":"encodePacked","nodeType":"MemberAccess","src":"22496:16:169","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22496:279:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":83517,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"22473:9:169","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22473:312:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83516,"id":83530,"nodeType":"Return","src":"22466:319:169"}]},"documentation":{"id":83496,"nodeType":"StructuredDocumentation","src":"21648:493:169","text":" @dev Computes the hash of `StateTransition`.\n @param actor The actor address.\n @param newStateHash The hash of the new state.\n @param exited The exit status.\n @param inheritor The inheritor address.\n @param valueToReceive The value to receive.\n @param valueToReceiveNegativeSign The sign of the value to receive.\n @param valueClaimsHash The hash of the value claims.\n @param messagesHashesHash The hash of the messages hashes."},"implemented":true,"kind":"function","modifiers":[],"name":"stateTransitionHash","nameLocation":"22155:19:169","parameters":{"id":83513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83498,"mutability":"mutable","name":"actor","nameLocation":"22192:5:169","nodeType":"VariableDeclaration","scope":83532,"src":"22184:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83497,"name":"address","nodeType":"ElementaryTypeName","src":"22184:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83500,"mutability":"mutable","name":"newStateHash","nameLocation":"22215:12:169","nodeType":"VariableDeclaration","scope":83532,"src":"22207:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22207:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83502,"mutability":"mutable","name":"exited","nameLocation":"22242:6:169","nodeType":"VariableDeclaration","scope":83532,"src":"22237:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83501,"name":"bool","nodeType":"ElementaryTypeName","src":"22237:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83504,"mutability":"mutable","name":"inheritor","nameLocation":"22266:9:169","nodeType":"VariableDeclaration","scope":83532,"src":"22258:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83503,"name":"address","nodeType":"ElementaryTypeName","src":"22258:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83506,"mutability":"mutable","name":"valueToReceive","nameLocation":"22293:14:169","nodeType":"VariableDeclaration","scope":83532,"src":"22285:22:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":83505,"name":"uint128","nodeType":"ElementaryTypeName","src":"22285:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":83508,"mutability":"mutable","name":"valueToReceiveNegativeSign","nameLocation":"22322:26:169","nodeType":"VariableDeclaration","scope":83532,"src":"22317:31:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83507,"name":"bool","nodeType":"ElementaryTypeName","src":"22317:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":83510,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"22366:15:169","nodeType":"VariableDeclaration","scope":83532,"src":"22358:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22358:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83512,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"22399:18:169","nodeType":"VariableDeclaration","scope":83532,"src":"22391:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22391:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22174:249:169"},"returnParameters":{"id":83516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83532,"src":"22447:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22447:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"22446:9:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83597,"nodeType":"FunctionDefinition","src":"23066:532:169","nodes":[],"body":{"id":83596,"nodeType":"Block","src":"23165:433:169","nodes":[],"statements":[{"assignments":[83543],"declarations":[{"constant":false,"id":83543,"mutability":"mutable","name":"start","nameLocation":"23183:5:169","nodeType":"VariableDeclaration","scope":83596,"src":"23175:13:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83542,"name":"uint256","nodeType":"ElementaryTypeName","src":"23175:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83548,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83544,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23191:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23197:6:169","memberName":"number","nodeType":"MemberAccess","src":"23191:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":83546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23206:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"23191:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23175:32:169"},{"assignments":[83550],"declarations":[{"constant":false,"id":83550,"mutability":"mutable","name":"end","nameLocation":"23225:3:169","nodeType":"VariableDeclaration","scope":83596,"src":"23217:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83549,"name":"uint256","nodeType":"ElementaryTypeName","src":"23217:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83561,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83551,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83537,"src":"23231:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":83552,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23241:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23247:6:169","memberName":"number","nodeType":"MemberAccess","src":"23241:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23231:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83556,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"23260:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23266:6:169","memberName":"number","nodeType":"MemberAccess","src":"23260:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83558,"name":"expiry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83537,"src":"23275:6:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"23260:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23231:50:169","trueExpression":{"hexValue":"30","id":83555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23256:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23217:64:169"},{"body":{"id":83592,"nodeType":"Block","src":"23326:243:169","statements":[{"assignments":[83570],"declarations":[{"constant":false,"id":83570,"mutability":"mutable","name":"ret","nameLocation":"23348:3:169","nodeType":"VariableDeclaration","scope":83592,"src":"23340:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23340:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83574,"initialValue":{"arguments":[{"id":83572,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83563,"src":"23364:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83571,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"23354:9:169","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23354:12:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23340:26:169"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83575,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83570,"src":"23384:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83576,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83535,"src":"23391:4:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23384:11:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83581,"name":"ret","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83570,"src":"23451:3:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23458:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23451:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83586,"nodeType":"IfStatement","src":"23447:52:169","trueBody":{"id":83585,"nodeType":"Block","src":"23461:38:169","statements":[{"id":83584,"nodeType":"Break","src":"23479:5:169"}]}},"id":83587,"nodeType":"IfStatement","src":"23380:119:169","trueBody":{"id":83580,"nodeType":"Block","src":"23397:44:169","statements":[{"expression":{"hexValue":"74727565","id":83578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23422:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83541,"id":83579,"nodeType":"Return","src":"23415:11:169"}]}},{"id":83591,"nodeType":"UncheckedBlock","src":"23513:46:169","statements":[{"expression":{"id":83589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"23541:3:169","subExpression":{"id":83588,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83563,"src":"23541:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83590,"nodeType":"ExpressionStatement","src":"23541:3:169"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83566,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83563,"src":"23315:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83567,"name":"end","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83550,"src":"23320:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23315:8:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83593,"initializationExpression":{"assignments":[83563],"declarations":[{"constant":false,"id":83563,"mutability":"mutable","name":"i","nameLocation":"23304:1:169","nodeType":"VariableDeclaration","scope":83593,"src":"23296:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83562,"name":"uint256","nodeType":"ElementaryTypeName","src":"23296:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83565,"initialValue":{"id":83564,"name":"start","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83543,"src":"23308:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23296:17:169"},"isSimpleCounterLoop":false,"nodeType":"ForStatement","src":"23291:278:169"},{"expression":{"hexValue":"66616c7365","id":83594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23586:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83541,"id":83595,"nodeType":"Return","src":"23579:12:169"}]},"documentation":{"id":83533,"nodeType":"StructuredDocumentation","src":"22798:263:169","text":" @dev Checks if block is predecessor of the current block.\n @param hash The hash of the block to check.\n @param expiry The expiry time for the block.\n @return isPredecessor `true` if the block is predecessor, `false` otherwise."},"implemented":true,"kind":"function","modifiers":[],"name":"blockIsPredecessor","nameLocation":"23075:18:169","parameters":{"id":83538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83535,"mutability":"mutable","name":"hash","nameLocation":"23102:4:169","nodeType":"VariableDeclaration","scope":83597,"src":"23094:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23094:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83537,"mutability":"mutable","name":"expiry","nameLocation":"23114:6:169","nodeType":"VariableDeclaration","scope":83597,"src":"23108:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":83536,"name":"uint8","nodeType":"ElementaryTypeName","src":"23108:5:169","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"23093:28:169"},"returnParameters":{"id":83541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83540,"mutability":"mutable","name":"isPredecessor","nameLocation":"23150:13:169","nodeType":"VariableDeclaration","scope":83597,"src":"23145:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83539,"name":"bool","nodeType":"ElementaryTypeName","src":"23145:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23144:20:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83610,"nodeType":"FunctionDefinition","src":"23743:222:169","nodes":[],"body":{"id":83609,"nodeType":"Block","src":"23852:113:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83605,"name":"COMPUTATION_THRESHOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82947,"src":"23901:21:169","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"id":83606,"name":"WVARA_PER_SECOND","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82959,"src":"23940:16:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83604,"name":"ComputationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83151,"src":"23869:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ComputationSettings_$83151_storage_ptr_$","typeString":"type(struct Gear.ComputationSettings storage pointer)"}},"id":83607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23890:9:169","23924:14:169"],"names":["threshold","wvaraPerSecond"],"nodeType":"FunctionCall","src":"23869:89:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"functionReturnParameters":83603,"id":83608,"nodeType":"Return","src":"23862:96:169"}]},"documentation":{"id":83598,"nodeType":"StructuredDocumentation","src":"23604:134:169","text":" @dev Returns the default computation settings.\n @return computationSettings The default computation settings."},"implemented":true,"kind":"function","modifiers":[],"name":"defaultComputationSettings","nameLocation":"23752:26:169","parameters":{"id":83599,"nodeType":"ParameterList","parameters":[],"src":"23778:2:169"},"returnParameters":{"id":83603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83602,"mutability":"mutable","name":"computationSettings","nameLocation":"23831:19:169","nodeType":"VariableDeclaration","scope":83610,"src":"23804:46:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":83601,"nodeType":"UserDefinedTypeName","pathNode":{"id":83600,"name":"ComputationSettings","nameLocations":["23804:19:169"],"nodeType":"IdentifierPath","referencedDeclaration":83151,"src":"23804:19:169"},"referencedDeclaration":83151,"src":"23804:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"23803:48:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83633,"nodeType":"FunctionDefinition","src":"24091:229:169","nodes":[],"body":{"id":83632,"nodeType":"Block","src":"24178:142:169","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":83620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24239:1:169","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":83619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24231:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24231:7:169","typeDescriptions":{}}},"id":83621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24231:10:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"expression":{"id":83624,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24269:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24275:6:169","memberName":"number","nodeType":"MemberAccess","src":"24269:12:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83622,"name":"SafeCast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"24251:8:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SafeCast_$55635_$","typeString":"type(library SafeCast)"}},"id":83623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24260:8:169","memberName":"toUint32","nodeType":"MemberAccess","referencedDeclaration":54681,"src":"24251:17:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint32_$","typeString":"function (uint256) pure returns (uint32)"}},"id":83626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24251:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83627,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"24295:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":83628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24300:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"24295:14:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":83629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24295:16:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint32","typeString":"uint32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":83617,"name":"GenesisBlockInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83159,"src":"24207:16:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GenesisBlockInfo_$83159_storage_ptr_$","typeString":"type(struct Gear.GenesisBlockInfo storage pointer)"}},"id":83630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["24225:4:169","24243:6:169","24284:9:169"],"names":["hash","number","timestamp"],"nodeType":"FunctionCall","src":"24207:106:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"functionReturnParameters":83616,"id":83631,"nodeType":"Return","src":"24188:125:169"}]},"documentation":{"id":83611,"nodeType":"StructuredDocumentation","src":"23971:115:169","text":" @dev Creates new genesis block info.\n @return genesisBlockInfo The new genesis block info."},"implemented":true,"kind":"function","modifiers":[],"name":"newGenesis","nameLocation":"24100:10:169","parameters":{"id":83612,"nodeType":"ParameterList","parameters":[],"src":"24110:2:169"},"returnParameters":{"id":83616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83615,"mutability":"mutable","name":"genesisBlockInfo","nameLocation":"24160:16:169","nodeType":"VariableDeclaration","scope":83633,"src":"24136:40:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_memory_ptr","typeString":"struct Gear.GenesisBlockInfo"},"typeName":{"id":83614,"nodeType":"UserDefinedTypeName","pathNode":{"id":83613,"name":"GenesisBlockInfo","nameLocations":["24136:16:169"],"nodeType":"IdentifierPath","referencedDeclaration":83159,"src":"24136:16:169"},"referencedDeclaration":83159,"src":"24136:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage_ptr","typeString":"struct Gear.GenesisBlockInfo"}},"visibility":"internal"}],"src":"24135:42:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83883,"nodeType":"FunctionDefinition","src":"24811:3813:169","nodes":[],"body":{"id":83882,"nodeType":"Block","src":"25074:3550:169","nodes":[],"statements":[{"assignments":[83655],"declarations":[{"constant":false,"id":83655,"mutability":"mutable","name":"eraStarted","nameLocation":"25146:10:169","nodeType":"VariableDeclaration","scope":83882,"src":"25138:18:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83654,"name":"uint256","nodeType":"ElementaryTypeName","src":"25138:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83661,"initialValue":{"arguments":[{"id":83657,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"25172:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83658,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25180:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25186:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25180:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83656,"name":"eraStartedAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84116,"src":"25159:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":83660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25159:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"25138:58:169"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":83673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83662,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"25210:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83663,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83655,"src":"25215:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25210:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83665,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25229:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25235:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25229:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83667,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83655,"src":"25247:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83668,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"25260:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"25260:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25277:15:169","memberName":"validationDelay","nodeType":"MemberAccess","referencedDeclaration":83256,"src":"25260:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25247:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25229:63:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25210:82:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83715,"nodeType":"Block","src":"25653:229:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83698,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"25675:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83699,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"25681:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25687:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"25681:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25675:21:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83702,"name":"TimestampInFuture","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82968,"src":"25698:17:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25698:19:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83697,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25667:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25667:51:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83705,"nodeType":"ExpressionStatement","src":"25667:51:169"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83706,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"25737:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83707,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83655,"src":"25742:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25737:15:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83714,"nodeType":"IfStatement","src":"25733:69:169","trueBody":{"id":83713,"nodeType":"Block","src":"25754:48:169","statements":[{"expression":{"id":83711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83709,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"25772:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83710,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83655,"src":"25777:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25772:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83712,"nodeType":"ExpressionStatement","src":"25772:15:169"}]}}]},"id":83716,"nodeType":"IfStatement","src":"25206:676:169","trueBody":{"id":83696,"nodeType":"Block","src":"25294:353:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83675,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"25316:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":83676,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"25322:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25329:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"25322:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25342:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"25322:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"25316:35:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83680,"name":"ValidationBeforeGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82962,"src":"25353:23:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25353:25:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83674,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25308:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25308:71:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83683,"nodeType":"ExpressionStatement","src":"25308:71:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83685,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"25401:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83686,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"25406:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25413:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"25406:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"id":83688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25423:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83252,"src":"25406:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25401:25:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":83690,"name":"eraStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83655,"src":"25430:10:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25401:39:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83692,"name":"TimestampOlderThanPreviousEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82965,"src":"25442:29:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25442:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83684,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25393:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25393:81:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83695,"nodeType":"ExpressionStatement","src":"25393:81:169"}]}},{"assignments":[83719],"declarations":[{"constant":false,"id":83719,"mutability":"mutable","name":"validators","nameLocation":"25963:10:169","nodeType":"VariableDeclaration","scope":83882,"src":"25944:29:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83718,"nodeType":"UserDefinedTypeName","pathNode":{"id":83717,"name":"Validators","nameLocations":["25944:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"25944:10:169"},"referencedDeclaration":83007,"src":"25944:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":83724,"initialValue":{"arguments":[{"id":83721,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"25989:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83722,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83649,"src":"25997:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83720,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83955,"src":"25976:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25976:24:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25944:56:169"},{"assignments":[83726],"declarations":[{"constant":false,"id":83726,"mutability":"mutable","name":"_messageHash","nameLocation":"26018:12:169","nodeType":"VariableDeclaration","scope":83882,"src":"26010:20:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83725,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26010:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83734,"initialValue":{"arguments":[{"id":83732,"name":"_dataHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83641,"src":"26079:9:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":83729,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"26041:4:169","typeDescriptions":{"typeIdentifier":"t_contract$_Gear_$84181","typeString":"library Gear"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Gear_$84181","typeString":"library Gear"}],"id":83728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26033:7:169","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83727,"name":"address","nodeType":"ElementaryTypeName","src":"26033:7:169","typeDescriptions":{}}},"id":83730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26033:13:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26047:31:169","memberName":"toDataWithIntendedValidatorHash","nodeType":"MemberAccess","referencedDeclaration":52224,"src":"26033:45:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,bytes32) pure returns (bytes32)"}},"id":83733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26033:56:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26010:79:169"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"},"id":83738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83735,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"26104:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83736,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83315,"src":"26122:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83315_$","typeString":"type(enum Gear.SignatureType)"}},"id":83737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26136:5:169","memberName":"FROST","nodeType":"MemberAccess","referencedDeclaration":83313,"src":"26122:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"}},"src":"26104:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"},"id":83791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83788,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83644,"src":"27300:14:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83789,"name":"SignatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83315,"src":"27318:13:169","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_SignatureType_$83315_$","typeString":"type(enum Gear.SignatureType)"}},"id":83790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27332:5:169","memberName":"ECDSA","nodeType":"MemberAccess","referencedDeclaration":83314,"src":"27318:19:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"}},"src":"27300:37:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83878,"nodeType":"IfStatement","src":"27296:1299:169","trueBody":{"id":83877,"nodeType":"Block","src":"27339:1256:169","statements":[{"assignments":[83793],"declarations":[{"constant":false,"id":83793,"mutability":"mutable","name":"threshold","nameLocation":"27361:9:169","nodeType":"VariableDeclaration","scope":83877,"src":"27353:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83792,"name":"uint256","nodeType":"ElementaryTypeName","src":"27353:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83805,"initialValue":{"arguments":[{"expression":{"expression":{"id":83795,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83719,"src":"27410:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27421:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"27410:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":83797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27426:6:169","memberName":"length","nodeType":"MemberAccess","src":"27410:22:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83798,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"27450:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27457:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"27450:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27476:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83260,"src":"27450:44:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":83801,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83637,"src":"27512:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27519:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"27512:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27538:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"27512:46:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":83794,"name":"validatorsThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84068,"src":"27373:19:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":83804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27373:199:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27353:219:169"},{"assignments":[83807],"declarations":[{"constant":false,"id":83807,"mutability":"mutable","name":"validSignatures","nameLocation":"27595:15:169","nodeType":"VariableDeclaration","scope":83877,"src":"27587:23:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83806,"name":"uint256","nodeType":"ElementaryTypeName","src":"27587:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83809,"initialValue":{"hexValue":"30","id":83808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27613:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27587:27:169"},{"body":{"id":83873,"nodeType":"Block","src":"27678:880:169","statements":[{"assignments":[83822],"declarations":[{"constant":false,"id":83822,"mutability":"mutable","name":"signature","nameLocation":"27711:9:169","nodeType":"VariableDeclaration","scope":83873,"src":"27696:24:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":83821,"name":"bytes","nodeType":"ElementaryTypeName","src":"27696:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83826,"initialValue":{"baseExpression":{"id":83823,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83647,"src":"27723:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83825,"indexExpression":{"id":83824,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83811,"src":"27735:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27723:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27696:41:169"},{"assignments":[83828],"declarations":[{"constant":false,"id":83828,"mutability":"mutable","name":"validator","nameLocation":"27764:9:169","nodeType":"VariableDeclaration","scope":83873,"src":"27756:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83827,"name":"address","nodeType":"ElementaryTypeName","src":"27756:7:169","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83833,"initialValue":{"arguments":[{"id":83831,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83822,"src":"27797:9:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":83829,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83726,"src":"27776:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27789:7:169","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50794,"src":"27776:20:169","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":83832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27776:31:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27756:51:169"},{"condition":{"baseExpression":{"expression":{"id":83834,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83719,"src":"27830:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27841:3:169","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"27830:14:169","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":83837,"indexExpression":{"id":83836,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83828,"src":"27845:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27830:25:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83872,"nodeType":"IfStatement","src":"27826:718:169","trueBody":{"id":83871,"nodeType":"Block","src":"27857:687:169","statements":[{"assignments":[83840],"declarations":[{"constant":false,"id":83840,"mutability":"mutable","name":"transientStorageValidatorsSlot","nameLocation":"28082:30:169","nodeType":"VariableDeclaration","scope":83871,"src":"28074:38:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28074:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev SECURITY:\n We use transient storage to prevent multiple signatures from the same validator.","id":83845,"initialValue":{"arguments":[{"id":83843,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83828,"src":"28152:9:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":83841,"name":"routerTransientStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83639,"src":"28115:22:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28138:13:169","memberName":"deriveMapping","nodeType":"MemberAccess","referencedDeclaration":48892,"src":"28115:36:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$returns$_t_bytes32_$attached_to$_t_bytes32_$","typeString":"function (bytes32,address) pure returns (bytes32)"}},"id":83844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28115:47:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28074:88:169"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83846,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83840,"src":"28189:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28220:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"28189:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28189:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28232:5:169","memberName":"tload","nodeType":"MemberAccess","referencedDeclaration":50612,"src":"28189:48:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_userDefinedValueType$_BooleanSlot_$50513_$returns$_t_bool_$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot) view returns (bool)"}},"id":83850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28189:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83861,"nodeType":"Block","src":"28304:104:169","statements":[{"expression":{"arguments":[{"hexValue":"74727565","id":83858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28380:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":83853,"name":"transientStorageValidatorsSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83840,"src":"28330:30:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28361:9:169","memberName":"asBoolean","nodeType":"MemberAccess","referencedDeclaration":50528,"src":"28330:40:169","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_userDefinedValueType$_BooleanSlot_$50513_$attached_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (TransientSlot.BooleanSlot)"}},"id":83856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28330:42:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BooleanSlot_$50513","typeString":"TransientSlot.BooleanSlot"}},"id":83857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28373:6:169","memberName":"tstore","nodeType":"MemberAccess","referencedDeclaration":50623,"src":"28330:49:169","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_userDefinedValueType$_BooleanSlot_$50513_$_t_bool_$returns$__$attached_to$_t_userDefinedValueType$_BooleanSlot_$50513_$","typeString":"function (TransientSlot.BooleanSlot,bool)"}},"id":83859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28330:55:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83860,"nodeType":"ExpressionStatement","src":"28330:55:169"}]},"id":83862,"nodeType":"IfStatement","src":"28185:223:169","trueBody":{"id":83852,"nodeType":"Block","src":"28241:57:169","statements":[{"id":83851,"nodeType":"Continue","src":"28267:8:169"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"28434:17:169","subExpression":{"id":83863,"name":"validSignatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83807,"src":"28436:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83865,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83793,"src":"28455:9:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28434:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83870,"nodeType":"IfStatement","src":"28430:96:169","trueBody":{"id":83869,"nodeType":"Block","src":"28466:60:169","statements":[{"expression":{"hexValue":"74727565","id":83867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28499:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":83653,"id":83868,"nodeType":"Return","src":"28492:11:169"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83814,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83811,"src":"27649:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83815,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83647,"src":"27653:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27665:6:169","memberName":"length","nodeType":"MemberAccess","src":"27653:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27649:22:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83874,"initializationExpression":{"assignments":[83811],"declarations":[{"constant":false,"id":83811,"mutability":"mutable","name":"i","nameLocation":"27642:1:169","nodeType":"VariableDeclaration","scope":83874,"src":"27634:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83810,"name":"uint256","nodeType":"ElementaryTypeName","src":"27634:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83813,"initialValue":{"hexValue":"30","id":83812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27646:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27634:13:169"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27673:3:169","subExpression":{"id":83818,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83811,"src":"27673:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83820,"nodeType":"ExpressionStatement","src":"27673:3:169"},"nodeType":"ForStatement","src":"27629:929:169"},{"expression":{"hexValue":"66616c7365","id":83875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28579:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83653,"id":83876,"nodeType":"Return","src":"28572:12:169"}]}},"id":83879,"nodeType":"IfStatement","src":"26100:2495:169","trueBody":{"id":83787,"nodeType":"Block","src":"26143:1147:169","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83740,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83647,"src":"26165:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26177:6:169","memberName":"length","nodeType":"MemberAccess","src":"26165:18:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":83742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26187:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"26165:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83744,"name":"InvalidFrostSignatureCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82971,"src":"26190:26:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26190:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83739,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26157:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26157:62:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83747,"nodeType":"ExpressionStatement","src":"26157:62:169"},{"assignments":[83749],"declarations":[{"constant":false,"id":83749,"mutability":"mutable","name":"_signature","nameLocation":"26247:10:169","nodeType":"VariableDeclaration","scope":83787,"src":"26234:23:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":83748,"name":"bytes","nodeType":"ElementaryTypeName","src":"26234:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":83753,"initialValue":{"baseExpression":{"id":83750,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83647,"src":"26260:11:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":83752,"indexExpression":{"hexValue":"30","id":83751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26272:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26260:14:169","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"26234:40:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83755,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83749,"src":"26296:10:169","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":83756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26307:6:169","memberName":"length","nodeType":"MemberAccess","src":"26296:17:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3936","id":83757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26317:2:169","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"26296:23:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83759,"name":"InvalidFrostSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82974,"src":"26321:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26321:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26288:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26288:63:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83762,"nodeType":"ExpressionStatement","src":"26288:63:169"},{"assignments":[83764],"declarations":[{"constant":false,"id":83764,"mutability":"mutable","name":"_signatureCommitmentX","nameLocation":"26374:21:169","nodeType":"VariableDeclaration","scope":83787,"src":"26366:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83763,"name":"uint256","nodeType":"ElementaryTypeName","src":"26366:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83765,"nodeType":"VariableDeclarationStatement","src":"26366:29:169"},{"assignments":[83767],"declarations":[{"constant":false,"id":83767,"mutability":"mutable","name":"_signatureCommitmentY","nameLocation":"26417:21:169","nodeType":"VariableDeclaration","scope":83787,"src":"26409:29:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83766,"name":"uint256","nodeType":"ElementaryTypeName","src":"26409:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83768,"nodeType":"VariableDeclarationStatement","src":"26409:29:169"},{"assignments":[83770],"declarations":[{"constant":false,"id":83770,"mutability":"mutable","name":"_signatureZ","nameLocation":"26460:11:169","nodeType":"VariableDeclaration","scope":83787,"src":"26452:19:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83769,"name":"uint256","nodeType":"ElementaryTypeName","src":"26452:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83771,"nodeType":"VariableDeclarationStatement","src":"26452:19:169"},{"AST":{"nativeSrc":"26511:215:169","nodeType":"YulBlock","src":"26511:215:169","statements":[{"nativeSrc":"26529:53:169","nodeType":"YulAssignment","src":"26529:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26564:10:169","nodeType":"YulIdentifier","src":"26564:10:169"},{"kind":"number","nativeSrc":"26576:4:169","nodeType":"YulLiteral","src":"26576:4:169","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26560:3:169","nodeType":"YulIdentifier","src":"26560:3:169"},"nativeSrc":"26560:21:169","nodeType":"YulFunctionCall","src":"26560:21:169"}],"functionName":{"name":"mload","nativeSrc":"26554:5:169","nodeType":"YulIdentifier","src":"26554:5:169"},"nativeSrc":"26554:28:169","nodeType":"YulFunctionCall","src":"26554:28:169"},"variableNames":[{"name":"_signatureCommitmentX","nativeSrc":"26529:21:169","nodeType":"YulIdentifier","src":"26529:21:169"}]},{"nativeSrc":"26599:53:169","nodeType":"YulAssignment","src":"26599:53:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26634:10:169","nodeType":"YulIdentifier","src":"26634:10:169"},{"kind":"number","nativeSrc":"26646:4:169","nodeType":"YulLiteral","src":"26646:4:169","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26630:3:169","nodeType":"YulIdentifier","src":"26630:3:169"},"nativeSrc":"26630:21:169","nodeType":"YulFunctionCall","src":"26630:21:169"}],"functionName":{"name":"mload","nativeSrc":"26624:5:169","nodeType":"YulIdentifier","src":"26624:5:169"},"nativeSrc":"26624:28:169","nodeType":"YulFunctionCall","src":"26624:28:169"},"variableNames":[{"name":"_signatureCommitmentY","nativeSrc":"26599:21:169","nodeType":"YulIdentifier","src":"26599:21:169"}]},{"nativeSrc":"26669:43:169","nodeType":"YulAssignment","src":"26669:43:169","value":{"arguments":[{"arguments":[{"name":"_signature","nativeSrc":"26694:10:169","nodeType":"YulIdentifier","src":"26694:10:169"},{"kind":"number","nativeSrc":"26706:4:169","nodeType":"YulLiteral","src":"26706:4:169","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26690:3:169","nodeType":"YulIdentifier","src":"26690:3:169"},"nativeSrc":"26690:21:169","nodeType":"YulFunctionCall","src":"26690:21:169"}],"functionName":{"name":"mload","nativeSrc":"26684:5:169","nodeType":"YulIdentifier","src":"26684:5:169"},"nativeSrc":"26684:28:169","nodeType":"YulFunctionCall","src":"26684:28:169"},"variableNames":[{"name":"_signatureZ","nativeSrc":"26669:11:169","nodeType":"YulIdentifier","src":"26669:11:169"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":83749,"isOffset":false,"isSlot":false,"src":"26564:10:169","valueSize":1},{"declaration":83749,"isOffset":false,"isSlot":false,"src":"26634:10:169","valueSize":1},{"declaration":83749,"isOffset":false,"isSlot":false,"src":"26694:10:169","valueSize":1},{"declaration":83764,"isOffset":false,"isSlot":false,"src":"26529:21:169","valueSize":1},{"declaration":83767,"isOffset":false,"isSlot":false,"src":"26599:21:169","valueSize":1},{"declaration":83770,"isOffset":false,"isSlot":false,"src":"26669:11:169","valueSize":1}],"flags":["memory-safe"],"id":83772,"nodeType":"InlineAssembly","src":"26486:240:169"},{"documentation":" @dev SECURITY: `FROST.isValidPublicKey(validators.aggregatedPublicKey.x, validators.aggregatedPublicKey.y)` is not called here,\n because it is already checked in `Router._resetValidators(...)`.","expression":{"arguments":[{"expression":{"expression":{"id":83775,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83719,"src":"27046:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27057:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82991,"src":"27046:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27077:1:169","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"27046:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83778,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83719,"src":"27096:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":83779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27107:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82991,"src":"27096:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":83780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27127:1:169","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"27096:32:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83781,"name":"_signatureCommitmentX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83764,"src":"27146:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83782,"name":"_signatureCommitmentY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83767,"src":"27185:21:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83783,"name":"_signatureZ","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83770,"src":"27224:11:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83784,"name":"_messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83726,"src":"27253:12:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83773,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"27007:5:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":83774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27013:15:169","memberName":"verifySignature","nodeType":"MemberAccess","referencedDeclaration":40964,"src":"27007:21:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,uint256,uint256,uint256,uint256,bytes32) view returns (bool)"}},"id":83785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27007:272:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83653,"id":83786,"nodeType":"Return","src":"27000:279:169"}]}},{"expression":{"hexValue":"66616c7365","id":83880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28612:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":83653,"id":83881,"nodeType":"Return","src":"28605:12:169"}]},"documentation":{"id":83634,"nodeType":"StructuredDocumentation","src":"24326:480:169","text":" @dev Validates signatures of the given data hash at the given timestamp.\n @param router The router storage.\n @param routerTransientStorage The router transient storage slot for this validation.\n @param _dataHash The hash of the data to validate signatures for.\n @param _signatureType The type of signatures to validate.\n @param _signatures The signatures to validate.\n @param ts The timestamp at which to validate signatures."},"implemented":true,"kind":"function","modifiers":[],"name":"validateSignaturesAt","nameLocation":"24820:20:169","parameters":{"id":83650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83637,"mutability":"mutable","name":"router","nameLocation":"24874:6:169","nodeType":"VariableDeclaration","scope":83883,"src":"24850:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83636,"nodeType":"UserDefinedTypeName","pathNode":{"id":83635,"name":"IRouter.Storage","nameLocations":["24850:7:169","24858:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"24850:15:169"},"referencedDeclaration":74493,"src":"24850:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83639,"mutability":"mutable","name":"routerTransientStorage","nameLocation":"24898:22:169","nodeType":"VariableDeclaration","scope":83883,"src":"24890:30:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24890:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83641,"mutability":"mutable","name":"_dataHash","nameLocation":"24938:9:169","nodeType":"VariableDeclaration","scope":83883,"src":"24930:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24930:7:169","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83644,"mutability":"mutable","name":"_signatureType","nameLocation":"24971:14:169","nodeType":"VariableDeclaration","scope":83883,"src":"24957:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"},"typeName":{"id":83643,"nodeType":"UserDefinedTypeName","pathNode":{"id":83642,"name":"SignatureType","nameLocations":["24957:13:169"],"nodeType":"IdentifierPath","referencedDeclaration":83315,"src":"24957:13:169"},"referencedDeclaration":83315,"src":"24957:13:169","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83647,"mutability":"mutable","name":"_signatures","nameLocation":"25012:11:169","nodeType":"VariableDeclaration","scope":83883,"src":"24995:28:169","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83645,"name":"bytes","nodeType":"ElementaryTypeName","src":"24995:5:169","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83646,"nodeType":"ArrayTypeName","src":"24995:7:169","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":83649,"mutability":"mutable","name":"ts","nameLocation":"25041:2:169","nodeType":"VariableDeclaration","scope":83883,"src":"25033:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83648,"name":"uint256","nodeType":"ElementaryTypeName","src":"25033:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24840:209:169"},"returnParameters":{"id":83653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83652,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83883,"src":"25068:4:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83651,"name":"bool","nodeType":"ElementaryTypeName","src":"25068:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25067:6:169"},"scope":84181,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":83900,"nodeType":"FunctionDefinition","src":"28743:166:169","nodes":[],"body":{"id":83899,"nodeType":"Block","src":"28848:61:169","nodes":[],"statements":[{"expression":{"arguments":[{"id":83894,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83887,"src":"28878:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83895,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"28886:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28892:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"28886:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83893,"name":"validatorsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83955,"src":"28865:12:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$_t_uint256_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (struct Gear.Validators storage pointer)"}},"id":83897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28865:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"functionReturnParameters":83892,"id":83898,"nodeType":"Return","src":"28858:44:169"}]},"documentation":{"id":83884,"nodeType":"StructuredDocumentation","src":"28630:108:169","text":" @dev Returns the validators for the current era.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"currentEraValidators","nameLocation":"28752:20:169","parameters":{"id":83888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83887,"mutability":"mutable","name":"router","nameLocation":"28797:6:169","nodeType":"VariableDeclaration","scope":83900,"src":"28773:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83886,"nodeType":"UserDefinedTypeName","pathNode":{"id":83885,"name":"IRouter.Storage","nameLocations":["28773:7:169","28781:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"28773:15:169"},"referencedDeclaration":74493,"src":"28773:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"28772:32:169"},"returnParameters":{"id":83892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83900,"src":"28828:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83890,"nodeType":"UserDefinedTypeName","pathNode":{"id":83889,"name":"Validators","nameLocations":["28828:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"28828:10:169"},"referencedDeclaration":83007,"src":"28828:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"28827:20:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83927,"nodeType":"FunctionDefinition","src":"29115:322:169","nodes":[],"body":{"id":83926,"nodeType":"Block","src":"29221:216:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83911,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83904,"src":"29261:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83912,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"29269:5:169","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29275:9:169","memberName":"timestamp","nodeType":"MemberAccess","src":"29269:15:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83910,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84022,"src":"29235:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":83914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29235:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83924,"nodeType":"Block","src":"29362:69:169","statements":[{"expression":{"expression":{"expression":{"id":83920,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83904,"src":"29383:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29390:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"29383:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29409:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83268,"src":"29383:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83909,"id":83923,"nodeType":"Return","src":"29376:44:169"}]},"id":83925,"nodeType":"IfStatement","src":"29231:200:169","trueBody":{"id":83919,"nodeType":"Block","src":"29287:69:169","statements":[{"expression":{"expression":{"expression":{"id":83915,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83904,"src":"29308:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29315:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"29308:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29334:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83265,"src":"29308:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83909,"id":83918,"nodeType":"Return","src":"29301:44:169"}]}}]},"documentation":{"id":83901,"nodeType":"StructuredDocumentation","src":"28915:195:169","text":" @dev Returns previous era validators, if there is no previous era,\n then returns free validators slot, which must be zeroed.\n @param router The router storage."},"implemented":true,"kind":"function","modifiers":[],"name":"previousEraValidators","nameLocation":"29124:21:169","parameters":{"id":83905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83904,"mutability":"mutable","name":"router","nameLocation":"29170:6:169","nodeType":"VariableDeclaration","scope":83927,"src":"29146:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83903,"nodeType":"UserDefinedTypeName","pathNode":{"id":83902,"name":"IRouter.Storage","nameLocations":["29146:7:169","29154:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"29146:15:169"},"referencedDeclaration":74493,"src":"29146:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"29145:32:169"},"returnParameters":{"id":83909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83927,"src":"29201:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83907,"nodeType":"UserDefinedTypeName","pathNode":{"id":83906,"name":"Validators","nameLocations":["29201:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"29201:10:169"},"referencedDeclaration":83007,"src":"29201:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29200:20:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":83955,"nodeType":"FunctionDefinition","src":"29574:312:169","nodes":[],"body":{"id":83954,"nodeType":"Block","src":"29683:203:169","nodes":[],"statements":[{"condition":{"arguments":[{"id":83940,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83931,"src":"29723:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83941,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83933,"src":"29731:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83939,"name":"validatorsStoredInSlot1At","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84022,"src":"29697:25:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (bool)"}},"id":83942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29697:37:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83952,"nodeType":"Block","src":"29811:69:169","statements":[{"expression":{"expression":{"expression":{"id":83948,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83931,"src":"29832:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29839:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"29832:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29858:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83265,"src":"29832:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83938,"id":83951,"nodeType":"Return","src":"29825:44:169"}]},"id":83953,"nodeType":"IfStatement","src":"29693:187:169","trueBody":{"id":83947,"nodeType":"Block","src":"29736:69:169","statements":[{"expression":{"expression":{"expression":{"id":83943,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83931,"src":"29757:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29764:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"29757:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29783:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83268,"src":"29757:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}},"functionReturnParameters":83938,"id":83946,"nodeType":"Return","src":"29750:44:169"}]}}]},"documentation":{"id":83928,"nodeType":"StructuredDocumentation","src":"29443:126:169","text":" @dev Returns validators at the given timestamp.\n @param ts Timestamp for which to get the validators."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsAt","nameLocation":"29583:12:169","parameters":{"id":83934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83931,"mutability":"mutable","name":"router","nameLocation":"29620:6:169","nodeType":"VariableDeclaration","scope":83955,"src":"29596:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83930,"nodeType":"UserDefinedTypeName","pathNode":{"id":83929,"name":"IRouter.Storage","nameLocations":["29596:7:169","29604:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"29596:15:169"},"referencedDeclaration":74493,"src":"29596:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83933,"mutability":"mutable","name":"ts","nameLocation":"29636:2:169","nodeType":"VariableDeclaration","scope":83955,"src":"29628:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83932,"name":"uint256","nodeType":"ElementaryTypeName","src":"29628:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29595:44:169"},"returnParameters":{"id":83938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83955,"src":"29663:18:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":83936,"nodeType":"UserDefinedTypeName","pathNode":{"id":83935,"name":"Validators","nameLocations":["29663:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"29663:10:169"},"referencedDeclaration":83007,"src":"29663:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"29662:20:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84022,"nodeType":"FunctionDefinition","src":"30293:863:169","nodes":[],"body":{"id":84021,"nodeType":"Block","src":"30437:719:169","nodes":[],"statements":[{"assignments":[83967],"declarations":[{"constant":false,"id":83967,"mutability":"mutable","name":"ts0","nameLocation":"30455:3:169","nodeType":"VariableDeclaration","scope":84021,"src":"30447:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83966,"name":"uint256","nodeType":"ElementaryTypeName","src":"30447:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83972,"initialValue":{"expression":{"expression":{"expression":{"id":83968,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83959,"src":"30461:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30468:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"30461:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30487:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83265,"src":"30461:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}},"id":83971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30499:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83006,"src":"30461:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30447:68:169"},{"assignments":[83974],"declarations":[{"constant":false,"id":83974,"mutability":"mutable","name":"ts1","nameLocation":"30533:3:169","nodeType":"VariableDeclaration","scope":84021,"src":"30525:11:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83973,"name":"uint256","nodeType":"ElementaryTypeName","src":"30525:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83979,"initialValue":{"expression":{"expression":{"expression":{"id":83975,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83959,"src":"30539:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30546:18:169","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"30539:25:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":83977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30565:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83268,"src":"30539:37:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}},"id":83978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30577:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83006,"src":"30539:54:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30525:68:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83981,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83967,"src":"30667:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":83982,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83974,"src":"30674:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30667:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83984,"name":"ErasTimestampMustNotBeEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82977,"src":"30679:27:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30679:29:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83980,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30659:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30659:50:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83987,"nodeType":"ExpressionStatement","src":"30659:50:169"},{"assignments":[83989],"declarations":[{"constant":false,"id":83989,"mutability":"mutable","name":"ts1Greater","nameLocation":"30725:10:169","nodeType":"VariableDeclaration","scope":84021,"src":"30720:15:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83988,"name":"bool","nodeType":"ElementaryTypeName","src":"30720:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83993,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83990,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83967,"src":"30738:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83991,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83974,"src":"30744:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30738:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30720:27:169"},{"assignments":[83995],"declarations":[{"constant":false,"id":83995,"mutability":"mutable","name":"tsGe0","nameLocation":"30762:5:169","nodeType":"VariableDeclaration","scope":84021,"src":"30757:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83994,"name":"bool","nodeType":"ElementaryTypeName","src":"30757:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83999,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83996,"name":"ts0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83967,"src":"30770:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83997,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83961,"src":"30777:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30770:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30757:22:169"},{"assignments":[84001],"declarations":[{"constant":false,"id":84001,"mutability":"mutable","name":"tsGe1","nameLocation":"30794:5:169","nodeType":"VariableDeclaration","scope":84021,"src":"30789:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":84000,"name":"bool","nodeType":"ElementaryTypeName","src":"30789:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":84005,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84002,"name":"ts1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83974,"src":"30802:3:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":84003,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83961,"src":"30809:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30802:9:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"30789:22:169"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84007,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83995,"src":"30903:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":84008,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84001,"src":"30912:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30903:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84010,"name":"ValidatorsNotFoundForTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82980,"src":"30919:30:169","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30919:32:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84006,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"30895:7:169","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30895:57:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84013,"nodeType":"ExpressionStatement","src":"30895:57:169"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84014,"name":"ts1Greater","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83989,"src":"31119:10:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84015,"name":"tsGe0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83995,"src":"31134:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":84016,"name":"tsGe1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84001,"src":"31143:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31134:14:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":84018,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31133:16:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"31119:30:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":83965,"id":84020,"nodeType":"Return","src":"31112:37:169"}]},"documentation":{"id":83956,"nodeType":"StructuredDocumentation","src":"29892:396:169","text":" @dev Returns `true` if validators at `ts` are stored in `router.validationSettings.validators1`.\n `false` means that current era validators are stored in `router.validationSettings.validators0`.\n @param ts Timestamp for which to check the validators slot.\n @return isSlot1 Whether validators at `ts` are stored in `router.validationSettings.validators1`."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsStoredInSlot1At","nameLocation":"30302:25:169","parameters":{"id":83962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83959,"mutability":"mutable","name":"router","nameLocation":"30352:6:169","nodeType":"VariableDeclaration","scope":84022,"src":"30328:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83958,"nodeType":"UserDefinedTypeName","pathNode":{"id":83957,"name":"IRouter.Storage","nameLocations":["30328:7:169","30336:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"30328:15:169"},"referencedDeclaration":74493,"src":"30328:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83961,"mutability":"mutable","name":"ts","nameLocation":"30368:2:169","nodeType":"VariableDeclaration","scope":84022,"src":"30360:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83960,"name":"uint256","nodeType":"ElementaryTypeName","src":"30360:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30327:44:169"},"returnParameters":{"id":83965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83964,"mutability":"mutable","name":"isSlot1","nameLocation":"30424:7:169","nodeType":"VariableDeclaration","scope":84022,"src":"30419:12:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83963,"name":"bool","nodeType":"ElementaryTypeName","src":"30419:4:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30418:14:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84068,"nodeType":"FunctionDefinition","src":"31658:456:169","nodes":[],"body":{"id":84067,"nodeType":"Block","src":"31841:273:169","nodes":[],"statements":[{"assignments":[84035],"declarations":[{"constant":false,"id":84035,"mutability":"mutable","name":"a","nameLocation":"31859:1:169","nodeType":"VariableDeclaration","scope":84067,"src":"31851:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84034,"name":"uint256","nodeType":"ElementaryTypeName","src":"31851:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84036,"nodeType":"VariableDeclarationStatement","src":"31851:9:169"},{"id":84043,"nodeType":"UncheckedBlock","src":"31870:76:169","statements":[{"expression":{"id":84041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84037,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84035,"src":"31894:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84038,"name":"validatorsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84025,"src":"31898:16:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":84039,"name":"thresholdNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84027,"src":"31917:18:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31898:37:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31894:41:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84042,"nodeType":"ExpressionStatement","src":"31894:41:169"}]},{"assignments":[84045],"declarations":[{"constant":false,"id":84045,"mutability":"mutable","name":"d","nameLocation":"31963:1:169","nodeType":"VariableDeclaration","scope":84067,"src":"31955:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84044,"name":"uint256","nodeType":"ElementaryTypeName","src":"31955:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84049,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84046,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84035,"src":"31967:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":84047,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84029,"src":"31971:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"31967:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"31955:36:169"},{"assignments":[84051],"declarations":[{"constant":false,"id":84051,"mutability":"mutable","name":"r","nameLocation":"32009:1:169","nodeType":"VariableDeclaration","scope":84067,"src":"32001:9:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84050,"name":"uint256","nodeType":"ElementaryTypeName","src":"32001:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84055,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84052,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84035,"src":"32013:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":84053,"name":"thresholdDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84029,"src":"32017:20:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"32013:24:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32001:36:169"},{"id":84066,"nodeType":"UncheckedBlock","src":"32047:61:169","statements":[{"expression":{"condition":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84056,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84051,"src":"32079:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":84057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32083:1:169","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32079:5:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":84059,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32078:7:169","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":84063,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84045,"src":"32096:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"32078:19:169","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84060,"name":"d","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84045,"src":"32088:1:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":84061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32092:1:169","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"32088:5:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84033,"id":84065,"nodeType":"Return","src":"32071:26:169"}]}]},"documentation":{"id":84023,"nodeType":"StructuredDocumentation","src":"31162:491:169","text":" @dev Calculates the threshold number of valid signatures required.\n The formula is:\n - `(validatorsAmount * thresholdNumerator).div_ceil(thresholdDenominator)`\n @param validatorsAmount The total number of validators.\n @param thresholdNumerator The numerator of the threshold fraction.\n @param thresholdDenominator The denominator of the threshold fraction.\n @return threshold The threshold number of valid signatures required."},"implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"31667:19:169","parameters":{"id":84030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84025,"mutability":"mutable","name":"validatorsAmount","nameLocation":"31695:16:169","nodeType":"VariableDeclaration","scope":84068,"src":"31687:24:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84024,"name":"uint256","nodeType":"ElementaryTypeName","src":"31687:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":84027,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"31721:18:169","nodeType":"VariableDeclaration","scope":84068,"src":"31713:26:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84026,"name":"uint128","nodeType":"ElementaryTypeName","src":"31713:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":84029,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"31749:20:169","nodeType":"VariableDeclaration","scope":84068,"src":"31741:28:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84028,"name":"uint128","nodeType":"ElementaryTypeName","src":"31741:7:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"31686:84:169"},"returnParameters":{"id":84033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84032,"mutability":"mutable","name":"threshold","nameLocation":"31826:9:169","nodeType":"VariableDeclaration","scope":84068,"src":"31818:17:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84031,"name":"uint256","nodeType":"ElementaryTypeName","src":"31818:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31817:19:169"},"scope":84181,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":84091,"nodeType":"FunctionDefinition","src":"32299:179:169","nodes":[],"body":{"id":84090,"nodeType":"Block","src":"32395:83:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84079,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84074,"src":"32413:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84080,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84072,"src":"32418:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32425:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"32418:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32438:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"32418:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"32413:34:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"32412:36:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84085,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84072,"src":"32451:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32458:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"32451:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32468:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83252,"src":"32451:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32412:59:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84078,"id":84089,"nodeType":"Return","src":"32405:66:169"}]},"documentation":{"id":84069,"nodeType":"StructuredDocumentation","src":"32120:174:169","text":" @dev Returns the era index for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era index."},"implemented":true,"kind":"function","modifiers":[],"name":"eraIndexAt","nameLocation":"32308:10:169","parameters":{"id":84075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84072,"mutability":"mutable","name":"router","nameLocation":"32343:6:169","nodeType":"VariableDeclaration","scope":84091,"src":"32319:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84071,"nodeType":"UserDefinedTypeName","pathNode":{"id":84070,"name":"IRouter.Storage","nameLocations":["32319:7:169","32327:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"32319:15:169"},"referencedDeclaration":74493,"src":"32319:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84074,"mutability":"mutable","name":"ts","nameLocation":"32359:2:169","nodeType":"VariableDeclaration","scope":84091,"src":"32351:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84073,"name":"uint256","nodeType":"ElementaryTypeName","src":"32351:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32318:44:169"},"returnParameters":{"id":84078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84091,"src":"32386:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84076,"name":"uint256","nodeType":"ElementaryTypeName","src":"32386:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32385:9:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84116,"nodeType":"FunctionDefinition","src":"32694:199:169","nodes":[],"body":{"id":84115,"nodeType":"Block","src":"32792:101:169","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84102,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84095,"src":"32809:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32816:12:169","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"32809:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32829:9:169","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"32809:29:169","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":84106,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84095,"src":"32852:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":84107,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84097,"src":"32860:2:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84105,"name":"eraIndexAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84091,"src":"32841:10:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":84108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32841:22:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":84109,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84095,"src":"32866:6:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32873:9:169","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"32866:16:169","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32883:3:169","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83252,"src":"32866:20:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32841:45:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32809:77:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":84101,"id":84114,"nodeType":"Return","src":"32802:84:169"}]},"documentation":{"id":84092,"nodeType":"StructuredDocumentation","src":"32484:205:169","text":" @dev Returns the timestamp when the era started for the given timestamp.\n @param router The router storage.\n @param ts The timestamp for which to get the era start timestamp."},"implemented":true,"kind":"function","modifiers":[],"name":"eraStartedAt","nameLocation":"32703:12:169","parameters":{"id":84098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84095,"mutability":"mutable","name":"router","nameLocation":"32740:6:169","nodeType":"VariableDeclaration","scope":84116,"src":"32716:30:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84094,"nodeType":"UserDefinedTypeName","pathNode":{"id":84093,"name":"IRouter.Storage","nameLocations":["32716:7:169","32724:7:169"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"32716:15:169"},"referencedDeclaration":74493,"src":"32716:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84097,"mutability":"mutable","name":"ts","nameLocation":"32756:2:169","nodeType":"VariableDeclaration","scope":84116,"src":"32748:10:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84096,"name":"uint256","nodeType":"ElementaryTypeName","src":"32748:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32715:44:169"},"returnParameters":{"id":84101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84116,"src":"32783:7:169","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84099,"name":"uint256","nodeType":"ElementaryTypeName","src":"32783:7:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32782:9:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84139,"nodeType":"FunctionDefinition","src":"33233:467:169","nodes":[],"body":{"id":84138,"nodeType":"Block","src":"33379:321:169","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":84128,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84120,"src":"33451:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33462:19:169","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82991,"src":"33451:30:169","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"expression":{"id":84130,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84120,"src":"33537:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33548:40:169","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82994,"src":"33537:51:169","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":84132,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84120,"src":"33608:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33619:4:169","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"33608:15:169","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":84134,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84120,"src":"33655:10:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"33666:16:169","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83006,"src":"33655:27:169","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84126,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"33396:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":84127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33401:14:169","memberName":"ValidatorsView","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"33396:19:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidatorsView_$83019_storage_ptr_$","typeString":"type(struct Gear.ValidatorsView storage pointer)"}},"id":84136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["33430:19:169","33495:40:169","33602:4:169","33637:16:169"],"names":["aggregatedPublicKey","verifiableSecretSharingCommitmentPointer","list","useFromTimestamp"],"nodeType":"FunctionCall","src":"33396:297:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"functionReturnParameters":84125,"id":84137,"nodeType":"Return","src":"33389:304:169"}]},"documentation":{"id":84117,"nodeType":"StructuredDocumentation","src":"32899:329:169","text":" @dev Converts `Gear.Validators` storage to `Gear.ValidatorsView` struct.\n Note that `validators.map` is passed as `validators.list`.\n @param validators The `Gear.Validators` storage to convert.\n @return validatorsView `Gear.ValidatorsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"33242:6:169","parameters":{"id":84121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84120,"mutability":"mutable","name":"validators","nameLocation":"33273:10:169","nodeType":"VariableDeclaration","scope":84139,"src":"33249:34:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84119,"nodeType":"UserDefinedTypeName","pathNode":{"id":84118,"name":"Gear.Validators","nameLocations":["33249:4:169","33254:10:169"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"33249:15:169"},"referencedDeclaration":83007,"src":"33249:15:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"src":"33248:36:169"},"returnParameters":{"id":84125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84124,"mutability":"mutable","name":"validatorsView","nameLocation":"33359:14:169","nodeType":"VariableDeclaration","scope":84139,"src":"33332:41:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84123,"nodeType":"UserDefinedTypeName","pathNode":{"id":84122,"name":"Gear.ValidatorsView","nameLocations":["33332:4:169","33337:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83019,"src":"33332:19:169"},"referencedDeclaration":83019,"src":"33332:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"src":"33331:43:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":84180,"nodeType":"FunctionDefinition","src":"33997:581:169","nodes":[],"body":{"id":84179,"nodeType":"Block","src":"34155:423:169","nodes":[],"statements":[{"assignments":[84153],"declarations":[{"constant":false,"id":84153,"mutability":"mutable","name":"validators0","nameLocation":"34192:11:169","nodeType":"VariableDeclaration","scope":84179,"src":"34165:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84152,"nodeType":"UserDefinedTypeName","pathNode":{"id":84151,"name":"Gear.ValidatorsView","nameLocations":["34165:4:169","34170:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83019,"src":"34165:19:169"},"referencedDeclaration":83019,"src":"34165:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84158,"initialValue":{"arguments":[{"expression":{"id":84155,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84143,"src":"34213:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34222:11:169","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83265,"src":"34213:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}],"id":84154,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84139,84180],"referencedDeclaration":84139,"src":"34206:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$83007_storage_ptr_$returns$_t_struct$_ValidatorsView_$83019_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34206:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34165:69:169"},{"assignments":[84163],"declarations":[{"constant":false,"id":84163,"mutability":"mutable","name":"validators1","nameLocation":"34271:11:169","nodeType":"VariableDeclaration","scope":84179,"src":"34244:38:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView"},"typeName":{"id":84162,"nodeType":"UserDefinedTypeName","pathNode":{"id":84161,"name":"Gear.ValidatorsView","nameLocations":["34244:4:169","34249:14:169"],"nodeType":"IdentifierPath","referencedDeclaration":83019,"src":"34244:19:169"},"referencedDeclaration":83019,"src":"34244:19:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_storage_ptr","typeString":"struct Gear.ValidatorsView"}},"visibility":"internal"}],"id":84168,"initialValue":{"arguments":[{"expression":{"id":84165,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84143,"src":"34292:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34301:11:169","memberName":"validators1","nodeType":"MemberAccess","referencedDeclaration":83268,"src":"34292:20:169","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}],"id":84164,"name":"toView","nodeType":"Identifier","overloadedDeclarations":[84139,84180],"referencedDeclaration":84139,"src":"34285:6:169","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Validators_$83007_storage_ptr_$returns$_t_struct$_ValidatorsView_$83019_memory_ptr_$","typeString":"function (struct Gear.Validators storage pointer) view returns (struct Gear.ValidatorsView memory)"}},"id":84167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34285:28:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},"nodeType":"VariableDeclarationStatement","src":"34244:69:169"},{"expression":{"arguments":[{"expression":{"id":84171,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84143,"src":"34392:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34401:18:169","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83260,"src":"34392:27:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":84173,"name":"settings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84143,"src":"34455:8:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage_ptr","typeString":"struct Gear.ValidationSettings storage pointer"}},"id":84174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"34464:20:169","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"34455:29:169","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":84175,"name":"validators0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84153,"src":"34511:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}},{"id":84176,"name":"validators1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84163,"src":"34549:11:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView memory"},{"typeIdentifier":"t_struct$_ValidatorsView_$83019_memory_ptr","typeString":"struct Gear.ValidatorsView memory"}],"expression":{"id":84169,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"34330:4:169","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":84170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34335:22:169","memberName":"ValidationSettingsView","nodeType":"MemberAccess","referencedDeclaration":83281,"src":"34330:27:169","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ValidationSettingsView_$83281_storage_ptr_$","typeString":"type(struct Gear.ValidationSettingsView storage pointer)"}},"id":84177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["34372:18:169","34433:20:169","34498:11:169","34536:11:169"],"names":["thresholdNumerator","thresholdDenominator","validators0","validators1"],"nodeType":"FunctionCall","src":"34330:241:169","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83281_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"functionReturnParameters":84148,"id":84178,"nodeType":"Return","src":"34323:248:169"}]},"documentation":{"id":84140,"nodeType":"StructuredDocumentation","src":"33706:286:169","text":" @dev Converts `Gear.ValidationSettings` storage to `Gear.ValidationSettingsView` struct.\n @param settings The `Gear.ValidationSettings` storage to convert.\n @return settingsView `Gear.ValidationSettingsView` struct with the same data as the input storage."},"implemented":true,"kind":"function","modifiers":[],"name":"toView","nameLocation":"34006:6:169","parameters":{"id":84144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84143,"mutability":"mutable","name":"settings","nameLocation":"34045:8:169","nodeType":"VariableDeclaration","scope":84180,"src":"34013:40:169","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage_ptr","typeString":"struct Gear.ValidationSettings"},"typeName":{"id":84142,"nodeType":"UserDefinedTypeName","pathNode":{"id":84141,"name":"Gear.ValidationSettings","nameLocations":["34013:4:169","34018:18:169"],"nodeType":"IdentifierPath","referencedDeclaration":83269,"src":"34013:23:169"},"referencedDeclaration":83269,"src":"34013:23:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage_ptr","typeString":"struct Gear.ValidationSettings"}},"visibility":"internal"}],"src":"34012:42:169"},"returnParameters":{"id":84148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84147,"mutability":"mutable","name":"settingsView","nameLocation":"34137:12:169","nodeType":"VariableDeclaration","scope":84180,"src":"34102:47:169","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83281_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":84146,"nodeType":"UserDefinedTypeName","pathNode":{"id":84145,"name":"Gear.ValidationSettingsView","nameLocations":["34102:4:169","34107:22:169"],"nodeType":"IdentifierPath","referencedDeclaration":83281,"src":"34102:27:169"},"referencedDeclaration":83281,"src":"34102:27:169","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83281_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"src":"34101:49:169"},"scope":84181,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Gear","contractDependencies":[],"contractKind":"library","documentation":{"id":82933,"nodeType":"StructuredDocumentation","src":"744:770:169","text":" @dev Library for core protocol utility functions for hashing, validation, and consensus-related logic.\n It provides:\n - Canonical hashing functions for protocol entities (messages, value claims, batch/code commitments, state transitions)\n - Validator set management with era-based switching and threshold configuration\n - Signature verification support for FROST aggregated signatures and ECDSA threshold signatures\n with transient storage to prevent double counting of signatures\n - Era and timeline utilities for selecting correct validator sets based on timestamp\n The library acts as a shared foundation for consensus, validation, and commitment verification\n across all protocol components."},"fullyImplemented":true,"linearizedBaseContracts":[84181],"name":"Gear","nameLocation":"1523:4:169","scope":84182,"usedErrors":[82962,82965,82968,82971,82974,82977,82980],"usedEvents":[]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":169} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Middleware.json b/ethexe/ethereum/abi/Middleware.json index 79597a9886f..a1dcf706582 100644 --- a/ethexe/ethereum/abi/Middleware.json +++ b/ethexe/ethereum/abi/Middleware.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"_commitment","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashes","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"activeOperators","type":"address[]","internalType":"address[]"},{"name":"stakes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"stake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"maxValidators","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerVault","inputs":[{"name":"_vault","type":"address","internalType":"address"},{"name":"_rewards","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"data","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"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":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyAdded","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnumerableMapNonexistentKey","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotEnabled","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","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":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020613d365f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6f90816100c78239608051818181611c690152611d380152f35b6001600160401b0319166001600160401b039081175f516020613d365f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;7983:34:30;7979:146;;-1:-1:-1;2376:21827:160;;;;;;;;1052:13:60;2376:21827:160;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;8085:29:30;;2376:21827:160;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;2376:21827:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7849:17;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;2357:1:29;2376:21827:160;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;2376:21827:160;;;;;;;;;;;;;;;9103:10;9074:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9074:20;9103:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;13809:372;2376:21827;;:::i;:::-;;;:::i;:::-;22945:2;;;;:::i;:::-;13809:372;:::i;:::-;2376:21827;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7536:21;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7422:30:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7422:30;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7641:21;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7296:34:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7296:34;2376:21827;;;;;;;;;;;;;;;;;;;;;;7747:22;-1:-1:-1;;;;;;;;;;;2376:21827:160;7747:22;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;:::i;:::-;;;;;;7981:20;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;16223:38;;2376:21827;-1:-1:-1;;;;;2376:21827:160;16209:10;:52;16205:108;;2376:21827;;;;16328:9;16339:18;;;;;;2376:21827;;;16359:3;16411:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;8806:28:86;;16441:17:160;;-1:-1:-1;;;;;16468:11:160;2376:21827;16468:11;:::i;:::-;2376:21827;8806:28:86;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;16440:40:160;16436:106;;2376:21827;;-1:-1:-1;;;;;16576:11:160;;;:::i;:::-;2376:21827;;;;;;;;;;16569:29;;;;;;;;;2376:21827;16569:29;;;;;;;16359:3;2376:21827;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16556:83;;16613:11;2376:21827;;16556:83;;2376:21827;;;;;;;;;;;:::i;:::-;16556:83;;-1:-1:-1;;;;;2376:21827:160;16556:83;;;;;;;2376:21827;16556:83;;;16359:3;;2376:21827;16328:9;;16556:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;16569:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;16436:106;-1:-1:-1;;;16507:20:160;;2376:21827;15830:20;16507;16205:108;-1:-1:-1;;;16284:18:160;;2376:21827;8477:18;16284;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;4301:16:30;2376:21827:160;;4724:16:30;;:34;;;;2376:21827:160;4803:1:30;4788:16;:50;;;;2376:21827:160;4853:13:30;:30;;;;2376:21827:160;4849:91:30;;;2376:21827:160;4803:1:30;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;3446:19;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;3501:29;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3564:27;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3622:24;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3676:23;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3736:30;2376:21827;;;;;;;;;4803:1:30;3709:24:160;;2376:21827;;;;;;;;;;3776:27;;;2376:21827;3806:33;2376:21827;;;3877:31;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;;;;3849:25:160;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;3942:27;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;4017:18;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;4002:12;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4068:4;3564:27;2376:21827;;4045:12;;2376:21827;4130:19;2376:21827;4114:13;;;2376:21827;4171:14;2376:21827;;;;;;;;4160:8;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4210:17;2376:21827;;;;;;;;4196:11;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;4255:33;;:::i;:::-;2376:21827;4238:69;;;;;2376:21827;;;;;;;;;;;;;4238:69;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;4343:35:160;;:::i;:::-;2376:21827;4317:91;;;;;2376:21827;;;3446:19;2376:21827;;;;;;;;;4317:91;;4068:4;2376:21827;4317:91;;2376:21827;4317:91;;;;;;;;2376:21827;;;;;;;;17713:17;2376:21827;;;;;;;;;4803:1:30;2376:21827:160;;;;;;;;;;;18102:44;;2376:21827;;;;;3564:27;2376:21827;;18377:48;2376:21827;;;;;;;;18665:45;2376:21827;;3736:30;2376:21827;;;;18840:21;;2376:21827;;;;;;19112:28;;2376:21827;;;19219:44;;;;:::i;:::-;2376:21827;19219:71;2376:21827;;3849:25;2376:21827;;19561:32;2376:21827;;5064:101:30;;2376:21827:160;;;5064:101:30;2376:21827:160;5140:14:30;2376:21827:160;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;4803:1:30;2376:21827:160;;5140:14:30;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;3033:1;2376:21827;;3446:19;2376:21827;;;-1:-1:-1;;;2376:21827:160;;;;;4317:91;;;;;:::i;:::-;2376:21827;;4317:91;;;;2376:21827;;;;4317:91;2376:21827;;;;;;;;;4238:69;;;;;:::i;:::-;2376:21827;;4238:69;;;;2376:21827;;;;;;;;;;;;4977:67:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;2376:21827:160;6496:23:30;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;2376:21827:160;;;;;;;;;;;;;;7164:36;-1:-1:-1;;;;;;;;;;;2376:21827:160;7164:36;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;9356:11;;;;3505:23:170;23973:47:85;2376:21827:160;9356:11;23973:47:85;:::i;:::-;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3505:23;-1:-1:-1;2376:21827:160;;;9401:17;;2376:21827;-1:-1:-1;9401:76:160;;;;2376:21827;9397:144;;;;21805:50:85;;;;:::i;:::-;;2376:21827:160;;9397:144;-1:-1:-1;;;9500:30:160;;2376:21827;9500:30;;9401:76;2376:21827;837:15:87;;;9441:36:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;9441:36;;:::i;:::-;2376:21827;;;9422:55;9401:76;;;;2376:21827;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;11781:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11756:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11756:17;11781:5;:::i;2376:21827::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8425:29;;2376:21827;;8425:29;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8411:10;:43;8407:99;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2376:21827:160;10308:8;;;;2376:21827;;;;;;;;;10294:10;:22;10290:71;;2376:21827;;;10396:12;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;10375:33;10371:90;;10471:30;;;;;;2376:21827;10516:13;;10670:8;2376:21827;10906:13;10670:8;;;10906:13;;2376:21827;;;;10511:677;10568:3;10535:24;;2376:21827;;10531:35;;;;;10623:27;;;;:::i;:::-;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;2376:21827:160;;;;5197:14:86;;2376:21827:160;;;;;;5197:26:86;10665:99:160;;2376:21827;;;;10884:58;2376:21827;;;;3710:23:170;2376:21827:160;23973:47:85;2376:21827:160;;;;;;;;;23973:47:85;;:::i;3710:23:170:-;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;-1:-1:-1;2376:21827:160;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10884:58;;;;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;:::i;:::-;10884:58;2376:21827;;10884:58;;;;;;:::i;:::-;2376:21827;;;;11041:14;;;2376:21827;;11041:14;;2376:21827;;11041:14;;-1:-1:-1;;;;;2376:21827:160;;;;;10956:106;;;;;2376:21827;;;;;;;;;;;;;;;;;;;10956:106;;2376:21827;10956:106;;2376:21827;;;;;;;;;;;;;;;;;;;:::i;:::-;10956:106;;;;;;;;;;;;;10568:3;2376:21827;;;11097:80;2376:21827;;;;;;;;;;;;;;;11129:47;;;2376:21827;;;;;;11129:47;;;;;;:::i;:::-;11097:80;:::i;:::-;10568:3;2376:21827;10516:13;;;10956:106;;;;;:::i;:::-;2376:21827;;10956:106;;;;;2376:21827;;;;;;;;;10956:106;2376:21827;;;10531:35;;11215:93;10531:35;;;2376:21827;;;;;11247:60;;;;2376:21827;;;;;;;;;;;;11247:60;;;11129:47;11247:60;;:::i;11215:93::-;2376:21827;;;;;11205:104;2376:21827;;;;;;10371:90;-1:-1:-1;;;10431:19:160;;2376:21827;20113:19;10431;10290:71;-1:-1:-1;;;10339:11:160;;2376:21827;9799:11;10339;2376:21827;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;9768:8;;;2376:21827;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;9754:10;:22;;;9750:71;;9844:12;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9835:21;;9831:78;;9943:27;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9919:101;;;;;;2376:21827;;;;;;;;;;;;9919:101;;2376:21827;9919:101;;2376:21827;;;;;;;;;;;;;;;9919:101;;;;;;;;2376:21827;;;;;;10048:30;;;;2376:21827;;;;;;;;10048:30;;;2376:21827;10048:30;;:::i;:::-;2376:21827;10038:41;;2376:21827;;;;;;9919:101;;;;;;:::i;:::-;2376:21827;;9919:101;;;;2376:21827;;;;;;;;;9831:78;-1:-1:-1;;;9879:19:160;;2376:21827;20113:19;9879;9750:71;-1:-1:-1;;;9799:11:160;;2376:21827;9799:11;;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;2376:21827:160;;3975:40:29;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8157:30;;2376:21827;;8157:30;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8143:10;:44;8139:101;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;8139:101;-1:-1:-1;;;8210:19:160;;2376:21827;15350:19;8210;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;6429:44:30;;;;;2376:21827:160;6425:105:30;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6959:1:30;;-1:-1:-1;;;;;2376:21827:160;6891:76:30;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;2376:21827:160;;;;;;;1800:178:73;2376:21827:160;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;6591:4:30;5155:33:160;;2376:21827;;;6591:4:30;5119:33:160;;2376:21827;;;;;;;;;;4573:1;5237:36;;2376:21827;4573:1;5198:36;;2376:21827;5364:63;5320:34;;;-1:-1:-1;;;;;2376:21827:160;;;;5283:34;;5320;5283;;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;5364:63;5461:21;;;;2376:21827;5437:21;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;5516:21;;;2376:21827;5492:21;;;2376:21827;5572:22;;;;2376:21827;5547:22;;;2376:21827;5624:17;;;;2376:21827;5604:17;;;2376:21827;;;;;;;;;;;5674:20;5651;;;;5674;;2376:21827;;;;;;-1:-1:-1;;5729:20:160;5850;;;;5710:13;5729:20;;;;5710:13;5760:3;2376:21827;;5725:33;;;;;5810:26;5850:36;5810:26;6591:4:30;5810:26:160;;;:::i;:::-;5850:36;;;:::i;:::-;;2376:21827;5710:13;;5725:33;-1:-1:-1;5931:17:160;6046;;;;5725:33;5931:17;5725:33;5959:3;2376:21827;;5927:30;;;;;6009:23;6046:33;6009:23;6591:4:30;6009:23:160;;;:::i;:::-;6046:33;;;:::i;:::-;;2376:21827;5912:13;;5927:30;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6654:20:30;2376:21827:160;;;4573:1;2376:21827;;6654:20:30;2376:21827:160;;;;;;-1:-1:-1;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;6425:105:30;-1:-1:-1;;;6496:23:30;;2376:21827:160;;6496:23:30;6429:44;4573:1:160;2376:21827;;-1:-1:-1;;;;;2376:21827:160;6448:25:30;;6429:44;;;2376:21827:160;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;2376:21827:160;4815:4:60;4807:23;4803:145;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;4803:145:60;-1:-1:-1;;;4908:29:60;;2376:21827:160;;4908:29:60;2376:21827:160;-1:-1:-1;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;2376:21827:160;4392:4:60;4384:23;;;:120;;;;2376:21827:160;4367:251:60;;;2303:62:29;;:::i;:::-;2376:21827:160;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;5865:52:60;;;;;;;2376:21827:160;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;2376:21827:160;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;2407:36:53;2376:21827:160;;2407:36:53;2376:21827:160;;2458:15:53;:11;;4107:55:66;4065:25;;;;;;;;2376:21827:160;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;2376:21827:160:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;;6159:70;;2376:21827:160;;6159:70:53;-1:-1:-1;;;6199:19:53;;2376:21827:160;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;2376:21827:160;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;2376:21827:160;;;6026:34:60;;5865:52;;;;2376:21827:160;5865:52:60;;2376:21827:160;5865:52:60;;;;;;2376:21827:160;5865:52:60;;;:::i;:::-;;;2376:21827:160;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;2376:21827:160;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;4462:42:60;;;-1:-1:-1;4384:120:60;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;9200:10;9172:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9172:20;9200:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;11664:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11638:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11638:17;11664:5;:::i;2376:21827::-;;;;;;;;;;;;;;;7032:33;-1:-1:-1;;;;;;;;;;;2376:21827:160;7032:33;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;8720:28;;;2376:21827;;;-1:-1:-1;;;8710:60:160;;8759:10;2376:21827;8710:60;;2376:21827;;;;;;8710:60;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8710:60;;;;;;;;;;;2376:21827;8709:61;;8705:121;;8854:24;;;2376:21827;;;-1:-1:-1;;;8840:76:160;;8759:10;2376:21827;8840:76;;2376:21827;8910:4;8710:60;2376:21827;;;;;;;;8840:76;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8840:76;;;;;;;;;;;2376:21827;8839:77;;8835:137;;2166:50:170;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;8759:10;8982:11;8759:10;8982:11;;2166:50:170;:::i;:::-;2165:51;2161:103;;2376:21827:160;;2161:103:170;-1:-1:-1;;;2239:14:170;;2376:21827:160;;2239:14:170;8835:137:160;-1:-1:-1;;;8939:22:160;;2376:21827;8939:22;;8840:76;;;;2376:21827;8840:76;2376:21827;8840:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;8705:121;-1:-1:-1;;;8793:22:160;;2376:21827;8793:22;;8710:60;;;;2376:21827;8710:60;2376:21827;8710:60;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;11943:8;;;;3505:23:170;23973:47:85;2376:21827:160;11943:8;23973:47:85;:::i;3505:23:170:-;-1:-1:-1;2376:21827:160;;;11982:17;;2376:21827;-1:-1:-1;11982:73:160;;;;2376:21827;11978:138;;;;21805:50:85;;;;:::i;11978:138:160:-;-1:-1:-1;;;12078:27:160;;2376:21827;12078:27;;11982:73;2376:21827;837:15:87;;;12022:33:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;12022:33;;:::i;:::-;2376:21827;;;12003:52;11982:73;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;15297:30;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;15283:10;:44;15279:101;;15395:9;2376:21827;;15390:726;15423:3;2376:21827;;;;;15406:15;;;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;8806:28:86;-1:-1:-1;;;;;15520:18:160;2376:21827;;;15520:18;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15498:41:160;15494:110;;15623:9;15663:3;15638:16;;;;2376:21827;;;15638:16;:::i;:::-;15634:27;;;;;;;15722:19;15638:16;15722;15638;;;2376:21827;;;15722:16;:::i;:::-;:19;;:::i;:::-;8806:28:86;-1:-1:-1;;;;;15783:15:160;;;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15764:35:160;15760:109;;2376:21827;;;;;;-1:-1:-1;;;;;15912:15:160;2376:21827;15912:15;:::i;:::-;2376:21827;;;;;;;;;;15905:33;;;;;;;;;;;;;15663:3;16012:12;2376:21827;16012:12;;2376:21827;;16026:18;2376:21827;;;16026:18;:::i;:::-;16064:12;;;2376:21827;;;;;;;;16064:12;;;;2376:21827;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;15956:135;;2376:21827;15956:135;;2376:21827;;;;;;;;;;;16046:16;2376:21827;;;;;;16064:12;;;2376:21827;;;;;;;;;;;;;;;;:::i;:::-;15956:135;;-1:-1:-1;;;;;2376:21827:160;15956:135;;;;;;;2376:21827;15956:135;;;15663:3;;2376:21827;15623:9;;15956:135;;;;;;;;;;;;;:::i;:::-;;;;;15905:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15634:27;;;2376:21827;15634:27;;2376:21827;15395:9;;;15494:110;-1:-1:-1;;;15566:23:160;;2376:21827;15566:23;;15406:15;;2376:21827;;15279:101;-1:-1:-1;;;15350:19:160;;2376:21827;15350:19;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;19801:11;;;2376:21827;;;-1:-1:-1;;;19791:53:160;;-1:-1:-1;;;;;2376:21827:160;;;;19791:53;;2376:21827;;;;;;;;;;;;;;;19791:53;;;;;;;2376:21827;19791:53;;;2376:21827;19790:54;;19786:109;;2376:21827;;-1:-1:-1;;;19909:35:160;;2376:21827;;;;19909:35;;;;;;;;2376:21827;19909:35;;;2376:21827;19948:25;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;19909:64;19905:128;;2376:21827;;-1:-1:-1;;;20047:27:160;;2376:21827;;;;20047:27;;;;;;;;2376:21827;20047:27;;;2376:21827;-1:-1:-1;20078:12:160;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;20047:43;20043:100;;2376:21827;;-1:-1:-1;;;20209:30:160;;2376:21827;;;;20209:30;;;;;;;;2376:21827;20209:30;;;2376:21827;;;;;;;;;;;20253:44;;;20249:107;;2376:21827;;-1:-1:-1;;;20404:39:160;;2376:21827;;;;20404:39;;;;;;;;2376:21827;20404:39;;;2376:21827;20403:40;;20399:103;;2376:21827;;-1:-1:-1;;;20554:26:160;;2376:21827;;;;20554:26;;;;;;;;2376:21827;20554:26;;;2376:21827;-1:-1:-1;2376:21827:160;20621:12;;;2376:21827;;;;-1:-1:-1;;;20595:39:160;;;;;2376:21827;20621:12;;-1:-1:-1;;;;;2376:21827:160;;;;;;;20595:39;;;;;;;2376:21827;20595:39;;;2376:21827;-1:-1:-1;20595:60:160;20591:158;;2376:21827;;;;;;;;;;;;;20778:32;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;17543:82;;2376:21827;;-1:-1:-1;;;20858:37:160;;2376:21827;;;;20858:37;;;;;;;;;;;;2376:21827;20857:38;;20853:99;;2376:21827;;-1:-1:-1;;;20980:24:160;;2376:21827;;;;20980:24;;;;;;;;;;;;2376:21827;-1:-1:-1;2376:21827:160;;-1:-1:-1;;;21018:23:160;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;21018:23;;;;;;;;;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;21018:48;21014:111;;2376:21827;;-1:-1:-1;;;21139:36:160;;2376:21827;;;;21139:36;;;;;;;;;;;;2376:21827;21135:98;;;2376:21827;;-1:-1:-1;;;21265:36:160;;2376:21827;;;;21265:36;;;;;;;;;;;;2376:21827;;;;;;;;;;;21315:32;21311:92;;21417:39;2376:21827;21432:24;;;;;2376:21827;;21417:39;;:::i;:::-;2376:21827;21417:60;21413:119;;2376:21827;;-1:-1:-1;;;21546:46:160;;2376:21827;;;;21546:46;;;;;;;;;;;;2376:21827;21595:27;;;;2376:21827;-1:-1:-1;21542:139:160;;2376:21827;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;21710:58;;2376:21827;21710:58;;2376:21827;;;;;;;;;;;:::i;:::-;21710:58;;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;21782:22;;;-1:-1:-1;21874:24:160;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;21820:93;;;;;2376:21827;;;;;;;;;;;;;;;;;21820:93;;;2376:21827;21820:93;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;21820:93;;;;;;;;;;;;;21778:299;;;;2376:21827;;-1:-1:-1;;;22163:23:160;;;2376:21827;;;22163:23;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22163:37;22159:94;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;22369:41;;;2376:21827;;;;;;;;;;;22359:71;;;2376:21827;22359:71;;2376:21827;22359:71;;;;;;;;;;;21778:299;22358:72;;22354:135;;2376:21827;;-1:-1:-1;;;22503:39:160;;;2376:21827;;;22503:39;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22503:49;22499:114;;2376:21827;;-1:-1:-1;;;22627:41:160;;;2376:21827;;;22627:41;;;;;;;;;-1:-1:-1;;;;;22627:41:160;21595:27;22627:41;;;;;21778:299;2376:21827;;;22627:46;22623:118;;11500:17;2166:50:170;837:15:87;;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;11500:17:160;2166:50:170;:::i;22623:118:160:-;-1:-1:-1;;;22696:34:160;;2376:21827;22696:34;;22627:41;;;;;;-1:-1:-1;22627:41:160;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;22499:114;-1:-1:-1;;;22575:27:160;;2376:21827;22575:27;;22503:39;;;;;;;;;;;;;;:::i;:::-;;;;;2376:21827;;;;;;;;;22354:135;-1:-1:-1;;;22453:25:160;;2376:21827;22453:25;;22359:71;;;;;;;;;;;;;;:::i;:::-;;;;22159:94;-1:-1:-1;;;22223:19:160;;2376:21827;22223:19;;22163:23;;;;;;;;;;;;;;:::i;:::-;;;;21820:93;;;;;:::i;:::-;2376:21827;;21820:93;;;;21778:299;21946:24;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;21934:36;;-1:-1:-1;21778:299:160;;-1:-1:-1;21930:147:160;-1:-1:-1;;;22048:18:160;;2376:21827;22048:18;;21710:58;;;;;;;;;;;;;;:::i;:::-;;;;21542:139;-1:-1:-1;;;21645:25:160;;2376:21827;21645:25;;21546:46;;;2376:21827;21546:46;;2376:21827;21546:46;;;;;;2376:21827;21546:46;;;:::i;:::-;;;2376:21827;;;;;21546:46;;;2376:21827;-1:-1:-1;2376:21827:160;;21546:46;;;-1:-1:-1;21546:46:160;;21413:119;-1:-1:-1;;;21500:21:160;;2376:21827;21500:21;;21311:92;-1:-1:-1;;;21370:22:160;;2376:21827;21370:22;;21265:36;;;;2376:21827;21265:36;2376:21827;21265:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21135:98;-1:-1:-1;;;21198:24:160;;2376:21827;21198:24;;21139:36;;;;2376:21827;21139:36;2376:21827;21139:36;;;;;;;:::i;:::-;;;;21014:111;-1:-1:-1;;;21089:25:160;;2376:21827;21089:25;;21018:23;-1:-1:-1;;;;;21018:23:160;;;;;;2376:21827;21018:23;2376:21827;21018:23;;;;;;;:::i;:::-;;;;;;20980:24;;;;2376:21827;20980:24;2376:21827;20980:24;;;;;;;:::i;:::-;;;;20853:99;-1:-1:-1;;;20918:23:160;;2376:21827;20918:23;;20858:37;;;;2376:21827;20858:37;2376:21827;20858:37;;;;;;;:::i;:::-;;;;17543:82;-1:-1:-1;;;;;;17588:26:160;;2376:21827;17588:26;;20778:32;;;;2376:21827;20778:32;2376:21827;20778:32;;;;;;;:::i;:::-;;;;20591:158;20671:67;;;;;2376:21827;;-1:-1:-1;;;20671:67:160;;2376:21827;;20671:67;;2376:21827;;;-1:-1:-1;;2376:21827:160;;;;;20671:67;2376:21827;;20671:67;;;;;;;;;20591:158;;;;20671:67;;;;;2376:21827;20671:67;;:::i;:::-;2376:21827;;;20671:67;;;2376:21827;;;;;;;;;20595:39;;;2376:21827;20595:39;;2376:21827;20595:39;;;;;;2376:21827;20595:39;;;:::i;:::-;;;2376:21827;;;;;20595:39;;;;;;-1:-1:-1;20595:39:160;;20554:26;;;;2376:21827;20554:26;2376:21827;20554:26;;;;;;;:::i;:::-;;;;20399:103;20466:25;;;2376:21827;20466:25;2376:21827;;20466:25;20404:39;;;;2376:21827;20404:39;2376:21827;20404:39;;;;;;;:::i;:::-;;;;20249:107;20320:25;;;2376:21827;20320:25;2376:21827;;20320:25;20209:30;;;;2376:21827;20209:30;2376:21827;20209:30;;;;;;;:::i;:::-;;;;20043:100;20113:19;;;2376:21827;20113:19;2376:21827;;20113:19;20047:27;;;;2376:21827;20047:27;2376:21827;20047:27;;;;;;;:::i;:::-;;;;19905:128;19996:26;;;2376:21827;19996:26;2376:21827;;19996:26;19909:35;;;;2376:21827;19909:35;2376:21827;19909:35;;;;;;;:::i;:::-;;;;19786:109;19867:17;;;2376:21827;19867:17;2376:21827;;19867:17;19791:53;;;;2376:21827;19791:53;2376:21827;19791:53;;;;;;;:::i;:::-;;;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;-1:-1:-1;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12161:1642::-;;12278:17;;2376:21827;;12407:29;;;:::i;:::-;2376:21827;;;12451:39;;;;12447:92;;12294:1;20638:17;;2376:21827;;;;;12627:368;12647:5;;;;;;13062:26;;;;12701:1;20638:17;;;2376:21827;;;;;;;;13118:25;;;;:::i;:::-;2376:21827;13158:25;13153:188;13213:3;2376:21827;;13185:26;;;;;13236:9;;;;;:::i;:::-;2376:21827;13236:22;13232:66;;12701:1;2376:21827;;;;;;;12701:1;13311:19;13213:3;2376:21827;13158:25;;;13232:66;13278:5;;;;;;;;;13153:188;12701:1;13355:18;;13351:316;;13153:188;13677:87;;;;;12161:1642;:::o;13351:316::-;2376:21827;;13518:20;;;2376:21827;;;;;;;;;;13518:20;;;;;;;:::i;:::-;2376:21827;13508:31;;2376:21827;;;;;13624:27;2376:21827;;13624:27;;:::i;:::-;-1:-1:-1;;2376:21827:160;;;;;;;13571:85;;-1:-1:-1;;;;;2376:21827:160;13608:48;;;;:::i;:::-;2376:21827;;;13571:85;;:::i;:::-;2376:21827;13351:316;;;;;2376:21827;;;;12294:1;2376:21827;;;;;12294:1;2376:21827;13185:26;;;;;;;;;;;;12654:3;12678:13;;;;;;;;;12294:1;12673:312;12708:3;2376:21827;;;;;-1:-1:-1;;2376:21827:160;;;;;;12693:13;;;;;12735:9;;;;:::i;:::-;2376:21827;12701:1;2376:21827;;;;;;;;12747:13;;;12701:1;12747:13;;;;;;:::i;:::-;2376:21827;-1:-1:-1;12731:240:160;;12708:3;;;;2376:21827;12678:13;;;12731:240;12861:91;2376:21827;12814:13;12784:55;12814:13;;;;;:::i;:::-;2376:21827;12829:9;;;;;:::i;:::-;2376:21827;12784:55;;;;:::i;:::-;2376:21827;12784:55;:::i;:::-;2376:21827;;;;;;12909:22;;;;:::i;:::-;2376:21827;;;12861:91;2376:21827;;;;;12933:18;;;;:::i;:::-;2376:21827;;;12861:91;;:::i;:::-;2376:21827;12731:240;;;;;12693:13;;;;;12701:1;12693:13;;;;;;2376:21827;12632:13;;;12447:92;12506:22;;;;;;;:::o;2376:21827::-;;;;12294:1;2376:21827;;12294:1;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;:::i;:::-;:::o;14224:940::-;;22945:2;;;:::i;:::-;14487:11;-1:-1:-1;;;;;;;;;;;2376:21827:160;14487:11;2376:21827;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;-1:-1:-1;14612:9:160;-1:-1:-1;14607:416:160;14623:24;;;;;;15033:125;;;;;;;;;14376:23;14224:940;:::o;14649:3::-;3215:12:170;;;;3268:14;14768:35:160;3215:12:170;;;;;:::i;:::-;3268:14;;;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3268:14;14768:35:160;;;:::i;:::-;14767:36;14763:83;;14860:39;14935:47;14860:39;;;;;:::i;:::-;-1:-1:-1;;;;;2376:21827:160;;;;14935:47;:::i;:::-;14913:69;;;;:::i;:::-;2376:21827;15011:1;2376:21827;;;;;;;15011:1;14996:16;14649:3;14612:9;2376:21827;14612:9;;;;;14763:83;14823:8;;15011:1;14823:8;;;13809:372;;14031:43;2376:21827;3505:23:170;23973:47:85;13977:20:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;13977:20;2376:21827;;;;;;;23973:47:85;;:::i;14031:43:160:-;14030:44;14026:83;;14127:47;;;:::i;:::-;13809:372;:::o;14026:83::-;14090:8;;-1:-1:-1;14090:8:160;:::o;3405:215:29:-;-1:-1:-1;;;;;2376:21827:160;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;2376:21827:160;;3509:1:29;3534:31;24020:181:160;2376:21827;;-1:-1:-1;;;24085:61:160;;2979:4;24085:61;;;2376:21827;24135:10;2979:4;;;2376:21827;;2979:4;;2376:21827;;24085:61;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;24085:61;;;;;;;2979:4;24085:61;;;24020:181;24084:62;;24080:115;;24020:181::o;24080:115::-;24169:15;;;2979:4;24169:15;24085:61;2979:4;24169:15;24085:61;;;;2979:4;24085:61;2979:4;24085:61;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2626:351:170:-;2376:21827:160;;2779:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2779:23:170:-;2376:21827:160;;;;;2817:16:170;;;:37;;;;;2626:351;2813:87;;;2910:60;837:15:87;-1:-1:-1;;;819:34:87;837:15;819:34;:::i;:::-;1716:2:170;2376:21827:160;;1667:52:170;1740:2;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2910:60;:::i;:::-;;2626:351::o;2813:87::-;2877:12;;;-1:-1:-1;2877:12:170;;-1:-1:-1;2877:12:170;2817:37;2376:21827:160;;;;2837:17:170;;2817:37;;;2276:344;2376:21827:160;;2428:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2428:23:170:-;2376:21827:160;;;;2466:16:170;;:37;;;;2276:344;2462:91;;;2563:50;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2563:50;:::i;2462:91::-;2526:16;;;-1:-1:-1;2526:16:170;;-1:-1:-1;2526:16:170;2466:37;2376:21827:160;;;;2486:17:170;2466:37;;;2658:162:29;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;2376:21827:160;;-1:-1:-1;2763:40:29;23080:242:85;;;5853:18:86;5004:11:85;23080:242;5853:18:86;;:::i;:::-;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;5004:11:85;2376:21827:160;;;-1:-1:-1;2376:21827:160;;;;;;;;;23260:55:85;23080:242;:::o;21364:182::-;7898:23:86;21364:182:85;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;3096:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;7898:23:86;:::i;22972:408:160:-;-1:-1:-1;;;;;;;;;;;2376:21827:160;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;;;;23076:22;;23072:80;;23284:16;2376:21827;;;;;;;;;;;;23183:42;;;:87;:42;;;:87;;23284:16;:::i;:::-;2376:21827;837:15:87;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;23284:36;;23280:94;;22972:408::o;23280:94::-;23121:20;;;-1:-1:-1;23343:20:160;;-1:-1:-1;23343:20:160;23183:87;;;;23284:16;:::i;17224:208::-;2376:21827;;17343:16;;;;17224:208;;17343:16;:37;;17224:208;17343:82;;;;17336:89;;17224:208;:::o;17343:82::-;2376:21827;;17385:17;;;-1:-1:-1;2376:21827:160;17385:39;;;;17343:82;;17224:208;:::o;17385:39::-;2376:21827;;-1:-1:-1;17406:18:160;;-1:-1:-1;17224:208:160;:::o;17343:37::-;2376:21827;;;-1:-1:-1;17363:17:160;;-1:-1:-1;17343:37:160;;;16662:556;-1:-1:-1;;;;;;;;;;;2376:21827:160;16841:8;;;2376:21827;;17125:25;17160:12;;;2376:21827;;;16662:556;2376:21827;;;;;;;16662:556;16837:21;;;;;;16662:556;;;;;;;;:::o;16860:3::-;3215:12:170;;;;;;;;3268:14;16991:53:160;3215:12:170;;;;;:::i;16991:53:160:-;16990:54;16986:101;;2376:21827;;-1:-1:-1;;;17125:25:160;;2376:21827;;;;;17125:25;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;17125:25;;;;;;;2376:21827;17125:25;;;2376:21827;17125:25;;;16860:3;2376:21827;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17110:91:160;;17125:25;17110:91;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17110:91;;-1:-1:-1;;;;;2376:21827:160;17110:91;;;;;;;2376:21827;17110:91;;;16860:3;17101:100;;;2376:21827;17101:100;;:::i;:::-;16860:3;16826:9;2376:21827;16826:9;;;;;;;;;17110:91;;;;;;;;;;;;;;;;:::i;:::-;;;2376:21827;;;;;;17110:91;;;;;;;17125:25;;;;;;;;;;;;;;:::i;:::-;;;;16986:101;17064:8;;2376:21827;17064:8;;;14296:213:83;2376:21827:160;14374:24:83;;14370:103;;2376:21827:160;;14296:213:83;:::o;14370:103::-;14421:41;;;;;14452:2;14421:41;2376:21827:160;;;;14421:41:83;;3330:164:85;;8192:26:86;3330:164:85;2376:21827:160;-1:-1:-1;2376:21827:160;3433:11:85;;;2376:21827:160;;-1:-1:-1;2376:21827:160;;;;8192:26:86;:::i;7082:141:30:-;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5626:274:85;;2376:21827:160;-1:-1:-1;2376:21827:160;5743:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5773:10:85;;;;:33;;;;5626:274;5769:103;;;;5881:12;5626:274;:::o;5769:103::-;5829:32;;;-1:-1:-1;5829:32:85;;2376:21827:160;;-1:-1:-1;5829:32:85;5773:33;8806:28:86;;;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;5787:19:85;5773:33;;;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;;-1:-1:-1;2376:21827:160;;;-1:-1:-1;2376:21827:160;:::o;3071:1368:86:-;;3266:14;;;2376:21827:160;;;;;;;;;;;3302:13:86;;;3298:1135;3302:13;;;-1:-1:-1;;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;20638:17;2376:21827;;;;3777:23:86;;;3773:378;;3298:1135;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;20638:17;;2376:21827;;;;;;;;;;;;;;;;;;3266:14:86;4368:11;:::o;2376:21827:160:-;;;;;;;;;;;;3773:378:86;2376:21827:160;3840:22:86;3961:23;3840:22;;;:::i;:::-;2376:21827:160;;;;;;3961:23:86;;;;;:::i;:::-;2376:21827:160;;;;;;;;;;20638:17;;;2376:21827;;;;;;;;;;;;;;;;;;;3773:378:86;;;;;3298:1135;4410:12;;;;2376:21827:160;4410:12:86;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;2376:21827:160;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;2376:21827:160;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;2376:21827:160;;;;4933:24:66;2376:21827:160;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;2497:406:86;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;2581:21:86;;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2776:14:86;2376:21827:160;;;;;;;2832:11:86;:::o","linkReferences":{},"immutableReferences":{"46093":[{"start":7273,"length":32},{"start":7480,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"EnumerableMapNonexistentKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"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\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"_commitment\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"slashes\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"activeOperators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"maxValidators\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewards\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AlreadyAdded()\":[{\"details\":\"Thrown when an address is already added to the map.\"}],\"AlreadyEnabled()\":[{\"details\":\"Thrown when an address is already enabled.\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnumerableMapNonexistentKey(bytes32)\":[{\"details\":\"Query for a nonexistent map key.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotEnabled()\":[{\"details\":\"Thrown when an address is not enabled.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"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.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorStakeAt(address,uint48)\":{\"returns\":{\"stake\":\"The total stake of the operator in all vaults that was active at the given timestamp.\"}},\"makeElectionAt(uint48,uint256)\":{\"details\":\"This function returns the list of validators that are will be responsible for block production in the next era.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"disableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"distributeOperatorRewards(address,uint256,bytes32)\":{\"notice\":\"The function can be called only by the Router contract.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterOperator(address)\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Middleware.sol\":\"Middleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"lib/symbiotic-core/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/symbiotic-core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/symbiotic-core/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"lib/symbiotic-core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06\",\"dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4\"]},\"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/Middleware.sol\":{\"keccak256\":\"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1\",\"dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadyAdded"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"type":"error","name":"EnumerableMapNonexistentKey"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotEnabled"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"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":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"_commitment","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"slashes","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"activeOperators","type":"address[]"},{"internalType":"uint256[]","name":"stakes","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"uint256","name":"maxValidators","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_rewards","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getOperatorStakeAt(address,uint48)":{"returns":{"stake":"The total stake of the operator in all vaults that was active at the given timestamp."}},"makeElectionAt(uint48,uint256)":{"details":"This function returns the list of validators that are will be responsible for block production in the next era."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"disableVault(address)":{"notice":"This function can be called only by the vault owner."},"distributeOperatorRewards(address,uint256,bytes32)":{"notice":"The function can be called only by the Router contract."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"enableVault(address)":{"notice":"This function can be called only by the vault owner."},"registerOperator()":{"notice":"This function can be called only be operator themselves."},"unregisterOperator(address)":{"notice":"This function can be called only be operator themselves."},"unregisterVault(address)":{"notice":"This function can be called only by the vault owner."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28","urls":["bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06","dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Middleware.sol":{"keccak256":"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8","urls":["bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1","dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":77279,"exportedSymbols":{"EnumerableMap":[58543],"Gear":[84099],"IAccessControl":[44539],"IBaseDelegator":[65506],"IDefaultOperatorRewards":[71798],"IDefaultStakerRewards":[71992],"IEntity":[65100],"IMiddleware":[74131],"IMigratableEntity":[65208],"INetworkMiddlewareService":[65994],"INetworkRegistry":[64998],"IOptInService":[66120],"IRegistry":[65332],"IVault":[66856],"IVetoSlasher":[66518],"MapWithTimeData":[84387],"Middleware":[77278],"OwnableUpgradeable":[42322],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"Subnetwork":[64978],"Time":[60343],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:24130:160","nodes":[{"id":75008,"nodeType":"PragmaDirective","src":"74:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":75010,"nodeType":"ImportDirective","src":"100:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":75009,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75012,"nodeType":"ImportDirective","src":"202:140:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":75011,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75014,"nodeType":"ImportDirective","src":"343:81:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":44540,"symbolAliases":[{"foreign":{"id":75013,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"351:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75016,"nodeType":"ImportDirective","src":"425:88:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":75015,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"433:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75018,"nodeType":"ImportDirective","src":"514:80:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":75017,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"522:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75020,"nodeType":"ImportDirective","src":"595:74:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":75019,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"603:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75022,"nodeType":"ImportDirective","src":"670:86:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":58544,"symbolAliases":[{"foreign":{"id":75021,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58543,"src":"678:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75024,"nodeType":"ImportDirective","src":"757:66:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":75023,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"765:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75026,"nodeType":"ImportDirective","src":"824:48:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":75025,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"832:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75028,"nodeType":"ImportDirective","src":"873:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":75027,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"881:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75030,"nodeType":"ImportDirective","src":"918:66:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":84388,"symbolAliases":[{"foreign":{"id":75029,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84387,"src":"926:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75032,"nodeType":"ImportDirective","src":"985:81:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":64979,"symbolAliases":[{"foreign":{"id":75031,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64978,"src":"993:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75034,"nodeType":"ImportDirective","src":"1067:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":64999,"symbolAliases":[{"foreign":{"id":75033,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"1075:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75036,"nodeType":"ImportDirective","src":"1152:73:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65101,"symbolAliases":[{"foreign":{"id":75035,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"1160:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75038,"nodeType":"ImportDirective","src":"1226:93:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65209,"symbolAliases":[{"foreign":{"id":75037,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"1234:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75040,"nodeType":"ImportDirective","src":"1320:77:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65333,"symbolAliases":[{"foreign":{"id":75039,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"1328:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75042,"nodeType":"ImportDirective","src":"1398:90:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65507,"symbolAliases":[{"foreign":{"id":75041,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1406:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75044,"nodeType":"ImportDirective","src":"1489:110:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":65995,"symbolAliases":[{"foreign":{"id":75043,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"1497:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75046,"nodeType":"ImportDirective","src":"1600:86:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66121,"symbolAliases":[{"foreign":{"id":75045,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"1608:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75048,"nodeType":"ImportDirective","src":"1687:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66519,"symbolAliases":[{"foreign":{"id":75047,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"1695:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75050,"nodeType":"ImportDirective","src":"1772:70:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":66857,"symbolAliases":[{"foreign":{"id":75049,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"1780:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75052,"nodeType":"ImportDirective","src":"1843:130:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":71799,"symbolAliases":[{"foreign":{"id":75051,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"1856:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75054,"nodeType":"ImportDirective","src":"1974:118:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":77279,"sourceUnit":71993,"symbolAliases":[{"foreign":{"id":75053,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"1982:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77278,"nodeType":"ContractDefinition","src":"2376:21827:160","nodes":[{"id":75066,"nodeType":"UsingForDirective","src":"2491:55:160","nodes":[],"global":false,"libraryName":{"id":75063,"name":"EnumerableMap","nameLocations":["2497:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2497:13:160"},"typeName":{"id":75065,"nodeType":"UserDefinedTypeName","pathNode":{"id":75064,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2515:13:160","2529:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2515:30:160"},"referencedDeclaration":56867,"src":"2515:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75070,"nodeType":"UsingForDirective","src":"2551:57:160","nodes":[],"global":false,"libraryName":{"id":75067,"name":"MapWithTimeData","nameLocations":["2557:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":84387,"src":"2557:15:160"},"typeName":{"id":75069,"nodeType":"UserDefinedTypeName","pathNode":{"id":75068,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2577:13:160","2591:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2577:30:160"},"referencedDeclaration":56867,"src":"2577:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75074,"nodeType":"UsingForDirective","src":"2614:58:160","nodes":[],"global":false,"libraryName":{"id":75071,"name":"EnumerableMap","nameLocations":["2620:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2620:13:160"},"typeName":{"id":75073,"nodeType":"UserDefinedTypeName","pathNode":{"id":75072,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2638:13:160","2652:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":57162,"src":"2638:33:160"},"referencedDeclaration":57162,"src":"2638:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$57162_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":75077,"nodeType":"UsingForDirective","src":"2678:29:160","nodes":[],"global":false,"libraryName":{"id":75075,"name":"Subnetwork","nameLocations":["2684:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64978,"src":"2684:10:160"},"typeName":{"id":75076,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75080,"nodeType":"VariableDeclaration","src":"2820:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2845:12:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75078,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2820:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":75079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2860:66:160","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":75083,"nodeType":"VariableDeclaration","src":"2933:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2958:18:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2933:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":75082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2979:4:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":75086,"nodeType":"VariableDeclaration","src":"2989:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3012:18:160","scope":77278,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":75084,"name":"uint8","nodeType":"ElementaryTypeName","src":"2989:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":75085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3033:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":75094,"nodeType":"FunctionDefinition","src":"3109:53:160","nodes":[],"body":{"id":75093,"nodeType":"Block","src":"3123:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75090,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"3133:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75092,"nodeType":"ExpressionStatement","src":"3133:22:160"}]},"documentation":{"id":75087,"nodeType":"StructuredDocumentation","src":"3041:63:160","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75088,"nodeType":"ParameterList","parameters":[],"src":"3120:2:160"},"returnParameters":{"id":75089,"nodeType":"ParameterList","parameters":[],"src":"3123:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75248,"nodeType":"FunctionDefinition","src":"3168:1277:160","nodes":[],"body":{"id":75247,"nodeType":"Block","src":"3236:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75103,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3261:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:5:160","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"3261:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75102,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"3246:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75106,"nodeType":"ExpressionStatement","src":"3246:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75107,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"3285:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75109,"nodeType":"ExpressionStatement","src":"3285:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":75111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3345:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":75110,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77247,"src":"3329:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3329:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75113,"nodeType":"ExpressionStatement","src":"3329:50:160"},{"assignments":[75116],"declarations":[{"constant":false,"id":75116,"mutability":"mutable","name":"$","nameLocation":"3405:1:160","nodeType":"VariableDeclaration","scope":75247,"src":"3389:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75115,"nodeType":"UserDefinedTypeName","pathNode":{"id":75114,"name":"Storage","nameLocations":["3389:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"3389:7:160"},"referencedDeclaration":73928,"src":"3389:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75119,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75117,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"3409:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3409:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3389:30:160"},{"expression":{"id":75125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75120,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3430:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3432:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"3430:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75123,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3446:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3454:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73864,"src":"3446:19:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3430:35:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75126,"nodeType":"ExpressionStatement","src":"3430:35:160"},{"expression":{"id":75132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75127,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3475:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3477:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"3475:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75130,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3501:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3509:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73866,"src":"3501:29:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3475:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75133,"nodeType":"ExpressionStatement","src":"3475:55:160"},{"expression":{"id":75139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75134,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3540:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3542:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"3540:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75137,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3564:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3572:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73868,"src":"3564:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3540:51:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75140,"nodeType":"ExpressionStatement","src":"3540:51:160"},{"expression":{"id":75146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75141,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3601:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3603:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"3601:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75144,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3622:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3630:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73870,"src":"3622:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3601:45:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75147,"nodeType":"ExpressionStatement","src":"3601:45:160"},{"expression":{"id":75153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75148,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3656:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3658:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"3656:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75151,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3676:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3684:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73872,"src":"3676:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3656:43:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75154,"nodeType":"ExpressionStatement","src":"3656:43:160"},{"expression":{"id":75160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75155,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3709:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3711:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"3709:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75158,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3736:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3744:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73874,"src":"3736:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3709:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75161,"nodeType":"ExpressionStatement","src":"3709:57:160"},{"expression":{"id":75167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75162,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3776:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3778:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"3776:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75165,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3806:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73880,"src":"3806:33:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3776:63:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75168,"nodeType":"ExpressionStatement","src":"3776:63:160"},{"expression":{"id":75174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75169,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3849:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3851:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"3849:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75172,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73876,"src":"3877:31:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3849:59:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75175,"nodeType":"ExpressionStatement","src":"3849:59:160"},{"expression":{"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75176,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"3918:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3920:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"3918:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75179,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"3942:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3950:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73878,"src":"3942:27:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:51:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75182,"nodeType":"ExpressionStatement","src":"3918:51:160"},{"expression":{"id":75188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75183,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4002:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4004:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"4002:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75186,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4017:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4025:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73884,"src":"4017:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4002:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75189,"nodeType":"ExpressionStatement","src":"4002:33:160"},{"expression":{"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75190,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4047:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"4045:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75198,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"4085:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":75195,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4068:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4060:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75193,"name":"address","nodeType":"ElementaryTypeName","src":"4060:7:160","typeDescriptions":{}}},"id":75196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4074:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":64940,"src":"4060:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint96_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,uint96) pure returns (bytes32)"}},"id":75199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4045:59:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75201,"nodeType":"ExpressionStatement","src":"4045:59:160"},{"expression":{"id":75207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75202,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4114:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4116:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"4114:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75205,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4130:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4138:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73882,"src":"4130:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4114:35:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75208,"nodeType":"ExpressionStatement","src":"4114:35:160"},{"expression":{"id":75214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75209,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4162:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"4160:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75212,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4171:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4179:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"4171:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4160:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75215,"nodeType":"ExpressionStatement","src":"4160:25:160"},{"expression":{"id":75221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75216,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4196:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4198:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"4196:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75219,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4210:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4218:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4210:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4196:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75222,"nodeType":"ExpressionStatement","src":"4196:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":75224,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4255:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4263:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4255:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4273:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":83214,"src":"4255:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75223,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"4238:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64998_$","typeString":"type(contract INetworkRegistry)"}},"id":75227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$64998","typeString":"contract INetworkRegistry"}},"id":75228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4290:15:160","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":64997,"src":"4238:67:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":75229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:69:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75230,"nodeType":"ExpressionStatement","src":"4238:69:160"},{"expression":{"arguments":[{"arguments":[{"id":75239,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4402:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4394:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75237,"name":"address","nodeType":"ElementaryTypeName","src":"4394:7:160","typeDescriptions":{}}},"id":75240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4394:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75232,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"4343:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4351:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4343:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":83216,"src":"4343:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75231,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"4317:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65994_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":75235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$65994","typeString":"contract INetworkMiddlewareService"}},"id":75236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4380:13:160","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":65993,"src":"4317:76:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75242,"nodeType":"ExpressionStatement","src":"4317:91:160"},{"expression":{"arguments":[{"id":75244,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"4436:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":75243,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76827,"src":"4419:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73928_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":75245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75246,"nodeType":"ExpressionStatement","src":"4419:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":75100,"kind":"modifierInvocation","modifierName":{"id":75099,"name":"initializer","nameLocations":["3224:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"3224:11:160"},"nodeType":"ModifierInvocation","src":"3224:11:160"}],"name":"initialize","nameLocation":"3177:10:160","parameters":{"id":75098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75097,"mutability":"mutable","name":"_params","nameLocation":"3208:7:160","nodeType":"VariableDeclaration","scope":75248,"src":"3188:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":75096,"nodeType":"UserDefinedTypeName","pathNode":{"id":75095,"name":"InitParams","nameLocations":["3188:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"3188:10:160"},"referencedDeclaration":73890,"src":"3188:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3187:29:160"},"returnParameters":{"id":75101,"nodeType":"ParameterList","parameters":[],"src":"3236:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75445,"nodeType":"FunctionDefinition","src":"4518:1578:160","nodes":[],"body":{"id":75444,"nodeType":"Block","src":"4576:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75258,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"4601:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:7:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75257,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4586:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75261,"nodeType":"ExpressionStatement","src":"4586:23:160"},{"assignments":[75264],"declarations":[{"constant":false,"id":75264,"mutability":"mutable","name":"oldStorage","nameLocation":"4636:10:160","nodeType":"VariableDeclaration","scope":75444,"src":"4620:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75263,"nodeType":"UserDefinedTypeName","pathNode":{"id":75262,"name":"Storage","nameLocations":["4620:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4620:7:160"},"referencedDeclaration":73928,"src":"4620:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75267,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75265,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"4649:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4620:39:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":75269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4686:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":75268,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77247,"src":"4670:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75271,"nodeType":"ExpressionStatement","src":"4670:50:160"},{"assignments":[75274],"declarations":[{"constant":false,"id":75274,"mutability":"mutable","name":"newStorage","nameLocation":"4746:10:160","nodeType":"VariableDeclaration","scope":75444,"src":"4730:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75273,"nodeType":"UserDefinedTypeName","pathNode":{"id":75272,"name":"Storage","nameLocations":["4730:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4730:7:160"},"referencedDeclaration":73928,"src":"4730:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75277,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75275,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"4759:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4759:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4730:39:160"},{"expression":{"id":75283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75278,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4780:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4791:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4780:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75281,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4805:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4816:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4805:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4780:47:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75284,"nodeType":"ExpressionStatement","src":"4780:47:160"},{"expression":{"id":75290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75285,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4837:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4848:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4837:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75288,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4872:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4883:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4872:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4837:67:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75291,"nodeType":"ExpressionStatement","src":"4837:67:160"},{"expression":{"id":75297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75292,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4914:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4925:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4914:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75295,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"4947:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4958:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4947:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4914:63:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75298,"nodeType":"ExpressionStatement","src":"4914:63:160"},{"expression":{"id":75304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75299,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"4987:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75301,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4998:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"4987:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75302,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5017:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"5017:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4987:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75305,"nodeType":"ExpressionStatement","src":"4987:57:160"},{"expression":{"id":75311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75306,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5054:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5065:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5054:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75309,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5083:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5094:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5083:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5054:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75312,"nodeType":"ExpressionStatement","src":"5054:55:160"},{"expression":{"id":75318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75313,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5119:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5130:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5119:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75316,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5155:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5166:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5155:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5119:69:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75319,"nodeType":"ExpressionStatement","src":"5119:69:160"},{"expression":{"id":75325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75320,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5198:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5209:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5198:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75323,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5237:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5248:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5237:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5198:75:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75326,"nodeType":"ExpressionStatement","src":"5198:75:160"},{"expression":{"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75327,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5283:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5294:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5283:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75330,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5320:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5331:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5320:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5283:71:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75333,"nodeType":"ExpressionStatement","src":"5283:71:160"},{"expression":{"id":75339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75334,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5364:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5375:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5364:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75337,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5397:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5408:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5397:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5364:63:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75340,"nodeType":"ExpressionStatement","src":"5364:63:160"},{"expression":{"id":75346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75341,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5437:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5448:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5437:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75344,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5461:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5472:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5461:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5437:45:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75347,"nodeType":"ExpressionStatement","src":"5437:45:160"},{"expression":{"id":75353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75348,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5492:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5503:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5492:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75351,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5516:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5527:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5516:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5492:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75354,"nodeType":"ExpressionStatement","src":"5492:45:160"},{"expression":{"id":75360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75355,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5547:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5558:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5547:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75358,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5572:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5583:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5572:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5547:47:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75361,"nodeType":"ExpressionStatement","src":"5547:47:160"},{"expression":{"id":75367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75362,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5604:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5604:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75365,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5624:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5635:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5624:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5604:37:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75368,"nodeType":"ExpressionStatement","src":"5604:37:160"},{"expression":{"id":75374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75369,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5651:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5662:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5651:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75372,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5674:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5685:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5674:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5651:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75375,"nodeType":"ExpressionStatement","src":"5651:43:160"},{"body":{"id":75408,"nodeType":"Block","src":"5765:132:160","statements":[{"assignments":[75390,75392],"declarations":[{"constant":false,"id":75390,"mutability":"mutable","name":"key","nameLocation":"5788:3:160","nodeType":"VariableDeclaration","scope":75408,"src":"5780:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75389,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75392,"mutability":"mutable","name":"value","nameLocation":"5801:5:160","nodeType":"VariableDeclaration","scope":75408,"src":"5793:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75391,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75398,"initialValue":{"arguments":[{"id":75396,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5834:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75393,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5810:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5821:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5810:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5831:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"5810:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5810:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5779:57:160"},{"expression":{"arguments":[{"id":75404,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75390,"src":"5875:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75405,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75392,"src":"5880:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75399,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"5850:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5861:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5850:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5871:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"5850:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5850:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75407,"nodeType":"ExpressionStatement","src":"5850:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5725:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75381,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5729:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5740:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5729:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5750:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5729:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5729:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5725:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75409,"initializationExpression":{"assignments":[75377],"declarations":[{"constant":false,"id":75377,"mutability":"mutable","name":"i","nameLocation":"5718:1:160","nodeType":"VariableDeclaration","scope":75409,"src":"5710:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75376,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75379,"initialValue":{"hexValue":"30","id":75378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5722:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5710:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5760:3:160","subExpression":{"id":75386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75377,"src":"5760:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75388,"nodeType":"ExpressionStatement","src":"5760:3:160"},"nodeType":"ForStatement","src":"5705:192:160"},{"body":{"id":75442,"nodeType":"Block","src":"5964:126:160","statements":[{"assignments":[75424,75426],"declarations":[{"constant":false,"id":75424,"mutability":"mutable","name":"key","nameLocation":"5987:3:160","nodeType":"VariableDeclaration","scope":75442,"src":"5979:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75423,"name":"address","nodeType":"ElementaryTypeName","src":"5979:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75426,"mutability":"mutable","name":"value","nameLocation":"6000:5:160","nodeType":"VariableDeclaration","scope":75442,"src":"5992:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5992:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75432,"initialValue":{"arguments":[{"id":75430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"6030:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75427,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"6009:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6020:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6009:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6027:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"6009:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5978:54:160"},{"expression":{"arguments":[{"id":75438,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75424,"src":"6068:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75439,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75426,"src":"6073:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75433,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75274,"src":"6046:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6057:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6046:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6064:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"6046:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6046:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75441,"nodeType":"ExpressionStatement","src":"6046:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75414,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"5927:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75415,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"5931:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5942:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"5931:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5949:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5931:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5927:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75443,"initializationExpression":{"assignments":[75411],"declarations":[{"constant":false,"id":75411,"mutability":"mutable","name":"i","nameLocation":"5920:1:160","nodeType":"VariableDeclaration","scope":75443,"src":"5912:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75410,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75413,"initialValue":{"hexValue":"30","id":75412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5924:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5912:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:160","subExpression":{"id":75420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"5959:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75422,"nodeType":"ExpressionStatement","src":"5959:3:160"},"nodeType":"ForStatement","src":"5907:183:160"}]},"documentation":{"id":75249,"nodeType":"StructuredDocumentation","src":"4451:62:160","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75252,"kind":"modifierInvocation","modifierName":{"id":75251,"name":"onlyOwner","nameLocations":["4549:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"4549:9:160"},"nodeType":"ModifierInvocation","src":"4549:9:160"},{"arguments":[{"hexValue":"32","id":75254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4573:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75255,"kind":"modifierInvocation","modifierName":{"id":75253,"name":"reinitializer","nameLocations":["4559:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"4559:13:160"},"nodeType":"ModifierInvocation","src":"4559:16:160"}],"name":"reinitialize","nameLocation":"4527:12:160","parameters":{"id":75250,"nodeType":"ParameterList","parameters":[],"src":"4539:2:160"},"returnParameters":{"id":75256,"nodeType":"ParameterList","parameters":[],"src":"4576:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75455,"nodeType":"FunctionDefinition","src":"6261:84:160","nodes":[],"body":{"id":75454,"nodeType":"Block","src":"6343:2:160","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":75446,"nodeType":"StructuredDocumentation","src":"6102:154:160","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":75452,"kind":"modifierInvocation","modifierName":{"id":75451,"name":"onlyOwner","nameLocations":["6333:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6333:9:160"},"nodeType":"ModifierInvocation","src":"6333:9:160"}],"name":"_authorizeUpgrade","nameLocation":"6270:17:160","overrides":{"id":75450,"nodeType":"OverrideSpecifier","overrides":[],"src":"6324:8:160"},"parameters":{"id":75449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75448,"mutability":"mutable","name":"newImplementation","nameLocation":"6296:17:160","nodeType":"VariableDeclaration","scope":75455,"src":"6288:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75447,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6287:27:160"},"returnParameters":{"id":75453,"nodeType":"ParameterList","parameters":[],"src":"6343:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75465,"nodeType":"FunctionDefinition","src":"6370:98:160","nodes":[],"body":{"id":75464,"nodeType":"Block","src":"6422:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75460,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6439:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6439:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6450:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"6439:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75459,"id":75463,"nodeType":"Return","src":"6432:29:160"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6379:11:160","parameters":{"id":75456,"nodeType":"ParameterList","parameters":[],"src":"6390:2:160"},"returnParameters":{"id":75459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75465,"src":"6414:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75457,"name":"uint48","nodeType":"ElementaryTypeName","src":"6414:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6413:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75475,"nodeType":"FunctionDefinition","src":"6474:118:160","nodes":[],"body":{"id":75474,"nodeType":"Block","src":"6536:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75470,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6553:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6553:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6564:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"6553:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75469,"id":75473,"nodeType":"Return","src":"6546:39:160"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6483:21:160","parameters":{"id":75466,"nodeType":"ParameterList","parameters":[],"src":"6504:2:160"},"returnParameters":{"id":75469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75475,"src":"6528:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75467,"name":"uint48","nodeType":"ElementaryTypeName","src":"6528:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6527:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75485,"nodeType":"FunctionDefinition","src":"6598:116:160","nodes":[],"body":{"id":75484,"nodeType":"Block","src":"6660:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75480,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6677:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6677:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6688:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"6677:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75479,"id":75483,"nodeType":"Return","src":"6670:37:160"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6607:19:160","parameters":{"id":75476,"nodeType":"ParameterList","parameters":[],"src":"6626:2:160"},"returnParameters":{"id":75479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75478,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75485,"src":"6652:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75477,"name":"uint48","nodeType":"ElementaryTypeName","src":"6652:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6651:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75495,"nodeType":"FunctionDefinition","src":"6720:110:160","nodes":[],"body":{"id":75494,"nodeType":"Block","src":"6779:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75490,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6796:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6796:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6807:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"6796:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75489,"id":75493,"nodeType":"Return","src":"6789:34:160"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6729:16:160","parameters":{"id":75486,"nodeType":"ParameterList","parameters":[],"src":"6745:2:160"},"returnParameters":{"id":75489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75488,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75495,"src":"6771:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75487,"name":"uint48","nodeType":"ElementaryTypeName","src":"6771:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6770:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75505,"nodeType":"FunctionDefinition","src":"6836:108:160","nodes":[],"body":{"id":75504,"nodeType":"Block","src":"6894:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75500,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"6911:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6922:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"6911:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75499,"id":75503,"nodeType":"Return","src":"6904:33:160"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6845:15:160","parameters":{"id":75496,"nodeType":"ParameterList","parameters":[],"src":"6860:2:160"},"returnParameters":{"id":75499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75505,"src":"6886:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75497,"name":"uint48","nodeType":"ElementaryTypeName","src":"6886:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6885:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75515,"nodeType":"FunctionDefinition","src":"6950:122:160","nodes":[],"body":{"id":75514,"nodeType":"Block","src":"7015:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75510,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7032:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7032:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7043:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"7032:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75509,"id":75513,"nodeType":"Return","src":"7025:40:160"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6959:22:160","parameters":{"id":75506,"nodeType":"ParameterList","parameters":[],"src":"6981:2:160"},"returnParameters":{"id":75509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75515,"src":"7007:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75507,"name":"uint48","nodeType":"ElementaryTypeName","src":"7007:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7006:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75525,"nodeType":"FunctionDefinition","src":"7078:129:160","nodes":[],"body":{"id":75524,"nodeType":"Block","src":"7147:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75520,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7164:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7164:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7175:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"7164:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75519,"id":75523,"nodeType":"Return","src":"7157:43:160"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7087:25:160","parameters":{"id":75516,"nodeType":"ParameterList","parameters":[],"src":"7112:2:160"},"returnParameters":{"id":75519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75525,"src":"7138:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75517,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75535,"nodeType":"FunctionDefinition","src":"7213:124:160","nodes":[],"body":{"id":75534,"nodeType":"Block","src":"7279:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75530,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7296:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7296:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7307:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"7296:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75529,"id":75533,"nodeType":"Return","src":"7289:41:160"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7222:23:160","parameters":{"id":75526,"nodeType":"ParameterList","parameters":[],"src":"7245:2:160"},"returnParameters":{"id":75529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75535,"src":"7271:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75527,"name":"uint64","nodeType":"ElementaryTypeName","src":"7271:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7270:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75545,"nodeType":"FunctionDefinition","src":"7343:116:160","nodes":[],"body":{"id":75544,"nodeType":"Block","src":"7405:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75540,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7422:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7422:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7433:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"7422:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75539,"id":75543,"nodeType":"Return","src":"7415:37:160"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7352:19:160","parameters":{"id":75536,"nodeType":"ParameterList","parameters":[],"src":"7371:2:160"},"returnParameters":{"id":75539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75545,"src":"7397:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75537,"name":"uint64","nodeType":"ElementaryTypeName","src":"7397:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7396:8:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75555,"nodeType":"FunctionDefinition","src":"7465:99:160","nodes":[],"body":{"id":75554,"nodeType":"Block","src":"7519:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75550,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7536:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7547:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"7536:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75549,"id":75553,"nodeType":"Return","src":"7529:28:160"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7474:10:160","parameters":{"id":75546,"nodeType":"ParameterList","parameters":[],"src":"7484:2:160"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75548,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75555,"src":"7510:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75547,"name":"address","nodeType":"ElementaryTypeName","src":"7510:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7509:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75565,"nodeType":"FunctionDefinition","src":"7570:99:160","nodes":[],"body":{"id":75564,"nodeType":"Block","src":"7624:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75560,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7641:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7641:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7652:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"7641:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75559,"id":75563,"nodeType":"Return","src":"7634:28:160"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7579:10:160","parameters":{"id":75556,"nodeType":"ParameterList","parameters":[],"src":"7589:2:160"},"returnParameters":{"id":75559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75558,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75565,"src":"7615:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7615:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7614:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75575,"nodeType":"FunctionDefinition","src":"7675:101:160","nodes":[],"body":{"id":75574,"nodeType":"Block","src":"7730:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75570,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7747:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7747:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7758:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"7747:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75569,"id":75573,"nodeType":"Return","src":"7740:29:160"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7684:11:160","parameters":{"id":75566,"nodeType":"ParameterList","parameters":[],"src":"7695:2:160"},"returnParameters":{"id":75569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75575,"src":"7721:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75567,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7720:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75585,"nodeType":"FunctionDefinition","src":"7782:91:160","nodes":[],"body":{"id":75584,"nodeType":"Block","src":"7832:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75580,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7849:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7860:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"7849:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75579,"id":75583,"nodeType":"Return","src":"7842:24:160"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7791:6:160","parameters":{"id":75576,"nodeType":"ParameterList","parameters":[],"src":"7797:2:160"},"returnParameters":{"id":75579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75578,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75585,"src":"7823:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75577,"name":"address","nodeType":"ElementaryTypeName","src":"7823:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7822:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75596,"nodeType":"FunctionDefinition","src":"7879:129:160","nodes":[],"body":{"id":75595,"nodeType":"Block","src":"7964:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75591,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"7981:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7981:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7992:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"7981:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":75590,"id":75594,"nodeType":"Return","src":"7974:27:160"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7888:18:160","parameters":{"id":75586,"nodeType":"ParameterList","parameters":[],"src":"7906:2:160"},"returnParameters":{"id":75590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75596,"src":"7932:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":75588,"nodeType":"UserDefinedTypeName","pathNode":{"id":75587,"name":"Gear.SymbioticContracts","nameLocations":["7932:4:160","7937:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":83229,"src":"7932:23:160"},"referencedDeclaration":83229,"src":"7932:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7931:32:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75627,"nodeType":"FunctionDefinition","src":"8033:263:160","nodes":[],"body":{"id":75626,"nodeType":"Block","src":"8089:207:160","nodes":[],"statements":[{"assignments":[75603],"declarations":[{"constant":false,"id":75603,"mutability":"mutable","name":"$","nameLocation":"8115:1:160","nodeType":"VariableDeclaration","scope":75626,"src":"8099:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75602,"nodeType":"UserDefinedTypeName","pathNode":{"id":75601,"name":"Storage","nameLocations":["8099:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8099:7:160"},"referencedDeclaration":73928,"src":"8099:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75606,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75604,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8119:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8119:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8099:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75607,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8143:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8143:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75609,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75603,"src":"8157:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8159:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8157:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8169:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"8157:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8143:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75617,"nodeType":"IfStatement","src":"8139:101:160","trueBody":{"id":75616,"nodeType":"Block","src":"8189:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75613,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"8210:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8210:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75615,"nodeType":"RevertStatement","src":"8203:26:160"}]}},{"expression":{"id":75624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75618,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75603,"src":"8249:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8251:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8249:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8261:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"8249:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75623,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75598,"src":"8282:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8249:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75625,"nodeType":"ExpressionStatement","src":"8249:40:160"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8042:20:160","parameters":{"id":75599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75598,"mutability":"mutable","name":"newRole","nameLocation":"8071:7:160","nodeType":"VariableDeclaration","scope":75627,"src":"8063:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75597,"name":"address","nodeType":"ElementaryTypeName","src":"8063:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8062:17:160"},"returnParameters":{"id":75600,"nodeType":"ParameterList","parameters":[],"src":"8089:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75658,"nodeType":"FunctionDefinition","src":"8302:259:160","nodes":[],"body":{"id":75657,"nodeType":"Block","src":"8357:204:160","nodes":[],"statements":[{"assignments":[75634],"declarations":[{"constant":false,"id":75634,"mutability":"mutable","name":"$","nameLocation":"8383:1:160","nodeType":"VariableDeclaration","scope":75657,"src":"8367:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75633,"nodeType":"UserDefinedTypeName","pathNode":{"id":75632,"name":"Storage","nameLocations":["8367:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8367:7:160"},"referencedDeclaration":73928,"src":"8367:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75637,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75635,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8387:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8387:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8367:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75638,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8411:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8415:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8411:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75640,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"8425:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75641,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8427:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8425:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8437:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"8425:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8411:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75648,"nodeType":"IfStatement","src":"8407:99:160","trueBody":{"id":75647,"nodeType":"Block","src":"8456:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75644,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"8477:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75646,"nodeType":"RevertStatement","src":"8470:25:160"}]}},{"expression":{"id":75655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75649,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"8515:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8517:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8515:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8527:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"8515:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75654,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"8547:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8515:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75656,"nodeType":"ExpressionStatement","src":"8515:39:160"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8311:19:160","parameters":{"id":75630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75629,"mutability":"mutable","name":"newRole","nameLocation":"8339:7:160","nodeType":"VariableDeclaration","scope":75658,"src":"8331:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75628,"name":"address","nodeType":"ElementaryTypeName","src":"8331:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8330:17:160"},"returnParameters":{"id":75631,"nodeType":"ParameterList","parameters":[],"src":"8357:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75712,"nodeType":"FunctionDefinition","src":"8617:405:160","nodes":[],"body":{"id":75711,"nodeType":"Block","src":"8654:368:160","nodes":[],"statements":[{"assignments":[75663],"declarations":[{"constant":false,"id":75663,"mutability":"mutable","name":"$","nameLocation":"8680:1:160","nodeType":"VariableDeclaration","scope":75711,"src":"8664:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75662,"nodeType":"UserDefinedTypeName","pathNode":{"id":75661,"name":"Storage","nameLocations":["8664:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8664:7:160"},"referencedDeclaration":73928,"src":"8664:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75666,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75664,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"8684:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8684:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8664:30:160"},{"condition":{"id":75676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8709:61:160","subExpression":{"arguments":[{"expression":{"id":75673,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8759:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8763:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8759:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75668,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8720:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8722:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8720:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":83212,"src":"8720:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75667,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"8710:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":75671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":75672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8750:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"8710:48:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":75675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75681,"nodeType":"IfStatement","src":"8705:121:160","trueBody":{"id":75680,"nodeType":"Block","src":"8772:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75677,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73773,"src":"8793:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8793:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75679,"nodeType":"RevertStatement","src":"8786:29:160"}]}},{"condition":{"id":75695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8839:77:160","subExpression":{"arguments":[{"expression":{"id":75688,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8890:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8894:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8890:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":75692,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8910:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77278","typeString":"contract Middleware"}],"id":75691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8902:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75690,"name":"address","nodeType":"ElementaryTypeName","src":"8902:7:160","typeDescriptions":{}}},"id":75693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8902:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75683,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8854:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8854:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8866:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":83218,"src":"8854:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75682,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"8840:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$66120_$","typeString":"type(contract IOptInService)"}},"id":75686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$66120","typeString":"contract IOptInService"}},"id":75687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8880:9:160","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":66067,"src":"8840:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":75694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75700,"nodeType":"IfStatement","src":"8835:137:160","trueBody":{"id":75699,"nodeType":"Block","src":"8918:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75696,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73776,"src":"8939:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8939:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75698,"nodeType":"RevertStatement","src":"8932:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":75706,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9001:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9005:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9001:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":75708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9013:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"expression":{"id":75701,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75663,"src":"8982:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8984:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"8982:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8994:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84212,"src":"8982:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":75709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75710,"nodeType":"ExpressionStatement","src":"8982:33:160"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8626:16:160","parameters":{"id":75659,"nodeType":"ParameterList","parameters":[],"src":"8642:2:160"},"returnParameters":{"id":75660,"nodeType":"ParameterList","parameters":[],"src":"8654:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75724,"nodeType":"FunctionDefinition","src":"9028:93:160","nodes":[],"body":{"id":75723,"nodeType":"Block","src":"9064:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75719,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9103:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9107:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9103:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75715,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9074:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9085:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9074:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9095:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84306,"src":"9074:28:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75722,"nodeType":"ExpressionStatement","src":"9074:40:160"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9037:15:160","parameters":{"id":75713,"nodeType":"ParameterList","parameters":[],"src":"9052:2:160"},"returnParameters":{"id":75714,"nodeType":"ParameterList","parameters":[],"src":"9064:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75736,"nodeType":"FunctionDefinition","src":"9127:91:160","nodes":[],"body":{"id":75735,"nodeType":"Block","src":"9162:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75731,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9200:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9204:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9200:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75727,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9172:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9183:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9172:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9193:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84259,"src":"9172:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75734,"nodeType":"ExpressionStatement","src":"9172:39:160"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9136:14:160","parameters":{"id":75725,"nodeType":"ParameterList","parameters":[],"src":"9150:2:160"},"returnParameters":{"id":75726,"nodeType":"ParameterList","parameters":[],"src":"9162:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75781,"nodeType":"FunctionDefinition","src":"9224:362:160","nodes":[],"body":{"id":75780,"nodeType":"Block","src":"9279:307:160","nodes":[],"statements":[{"assignments":[75743],"declarations":[{"constant":false,"id":75743,"mutability":"mutable","name":"$","nameLocation":"9305:1:160","nodeType":"VariableDeclaration","scope":75780,"src":"9289:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75742,"nodeType":"UserDefinedTypeName","pathNode":{"id":75741,"name":"Storage","nameLocations":["9289:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9289:7:160"},"referencedDeclaration":73928,"src":"9289:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75746,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75744,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9309:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9309:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9289:30:160"},{"assignments":[null,75748],"declarations":[null,{"constant":false,"id":75748,"mutability":"mutable","name":"disabledTime","nameLocation":"9340:12:160","nodeType":"VariableDeclaration","scope":75780,"src":"9333:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75747,"name":"uint48","nodeType":"ElementaryTypeName","src":"9333:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75754,"initialValue":{"arguments":[{"id":75752,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9377:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75749,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9356:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9358:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9356:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9368:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"9356:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9330:56:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75755,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9401:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9417:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9401:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75758,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"9422:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":75759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9427:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"9422:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":75760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9422:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75761,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75748,"src":"9441:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75762,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9456:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9458:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"9456:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9441:36:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9422:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9401:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75771,"nodeType":"IfStatement","src":"9397:144:160","trueBody":{"id":75770,"nodeType":"Block","src":"9479:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75767,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73761,"src":"9500:28:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9500:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75769,"nodeType":"RevertStatement","src":"9493:37:160"}]}},{"expression":{"arguments":[{"id":75777,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75738,"src":"9570:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75772,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75743,"src":"9551:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9553:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9551:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9563:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"9551:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":75778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9551:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75779,"nodeType":"ExpressionStatement","src":"9551:28:160"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9233:18:160","parameters":{"id":75739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75738,"mutability":"mutable","name":"operator","nameLocation":"9260:8:160","nodeType":"VariableDeclaration","scope":75781,"src":"9252:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75737,"name":"address","nodeType":"ElementaryTypeName","src":"9252:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9251:18:160"},"returnParameters":{"id":75740,"nodeType":"ParameterList","parameters":[],"src":"9279:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75839,"nodeType":"FunctionDefinition","src":"9592:494:160","nodes":[],"body":{"id":75838,"nodeType":"Block","src":"9699:387:160","nodes":[],"statements":[{"assignments":[75794],"declarations":[{"constant":false,"id":75794,"mutability":"mutable","name":"$","nameLocation":"9725:1:160","nodeType":"VariableDeclaration","scope":75838,"src":"9709:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75793,"nodeType":"UserDefinedTypeName","pathNode":{"id":75792,"name":"Storage","nameLocations":["9709:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9709:7:160"},"referencedDeclaration":73928,"src":"9709:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75797,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75795,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"9729:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9729:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9709:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75798,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9754:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9758:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9754:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75800,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9768:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9770:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9768:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9754:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75807,"nodeType":"IfStatement","src":"9750:71:160","trueBody":{"id":75806,"nodeType":"Block","src":"9778:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75803,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"9799:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9799:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75805,"nodeType":"RevertStatement","src":"9792:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75808,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"9835:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75809,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9844:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9846:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"9844:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9835:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75816,"nodeType":"IfStatement","src":"9831:78:160","trueBody":{"id":75815,"nodeType":"Block","src":"9858:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75812,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"9879:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9879:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75814,"nodeType":"RevertStatement","src":"9872:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":75823,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9990:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9992:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9990:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75825,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"10000:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75826,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"10007:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75827,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"10015:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"expression":{"id":75818,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75794,"src":"9943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9945:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"9943:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9955:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":83222,"src":"9943:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75817,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"9919:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71798_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":75821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$71798","typeString":"contract IDefaultOperatorRewards"}},"id":75822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9972:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71780,"src":"9919:70:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":75828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:101:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75829,"nodeType":"ExpressionStatement","src":"9919:101:160"},{"expression":{"arguments":[{"arguments":[{"id":75833,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"10065:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75834,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75787,"src":"10073:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75831,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10048:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10052:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"10048:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10048:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75830,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10038:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10038:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75791,"id":75837,"nodeType":"Return","src":"10031:48:160"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9601:25:160","parameters":{"id":75788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75783,"mutability":"mutable","name":"token","nameLocation":"9635:5:160","nodeType":"VariableDeclaration","scope":75839,"src":"9627:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75782,"name":"address","nodeType":"ElementaryTypeName","src":"9627:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75785,"mutability":"mutable","name":"amount","nameLocation":"9650:6:160","nodeType":"VariableDeclaration","scope":75839,"src":"9642:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75784,"name":"uint256","nodeType":"ElementaryTypeName","src":"9642:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75787,"mutability":"mutable","name":"root","nameLocation":"9666:4:160","nodeType":"VariableDeclaration","scope":75839,"src":"9658:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9658:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9626:45:160"},"returnParameters":{"id":75791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75839,"src":"9690:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9690:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9689:9:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75987,"nodeType":"FunctionDefinition","src":"10092:1224:160","nodes":[],"body":{"id":75986,"nodeType":"Block","src":"10239:1077:160","nodes":[],"statements":[{"assignments":[75851],"declarations":[{"constant":false,"id":75851,"mutability":"mutable","name":"$","nameLocation":"10265:1:160","nodeType":"VariableDeclaration","scope":75986,"src":"10249:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75850,"nodeType":"UserDefinedTypeName","pathNode":{"id":75849,"name":"Storage","nameLocations":["10249:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"10249:7:160"},"referencedDeclaration":73928,"src":"10249:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75854,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75852,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"10269:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10249:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75855,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10294:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10298:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10294:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10308:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10310:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"10308:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10294:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75864,"nodeType":"IfStatement","src":"10290:71:160","trueBody":{"id":75863,"nodeType":"Block","src":"10318:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75860,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"10339:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75862,"nodeType":"RevertStatement","src":"10332:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75865,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10375:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10387:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"10375:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75867,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10396:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10398:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"10396:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10375:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75874,"nodeType":"IfStatement","src":"10371:90:160","trueBody":{"id":75873,"nodeType":"Block","src":"10410:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75870,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"10431:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10431:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75872,"nodeType":"RevertStatement","src":"10424:26:160"}]}},{"assignments":[75876],"declarations":[{"constant":false,"id":75876,"mutability":"mutable","name":"distributionBytes","nameLocation":"10484:17:160","nodeType":"VariableDeclaration","scope":75986,"src":"10471:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75875,"name":"bytes","nodeType":"ElementaryTypeName","src":"10471:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75877,"nodeType":"VariableDeclarationStatement","src":"10471:30:160"},{"body":{"id":75969,"nodeType":"Block","src":"10573:615:160","statements":[{"assignments":[75894],"declarations":[{"constant":false,"id":75894,"mutability":"mutable","name":"rewards","nameLocation":"10613:7:160","nodeType":"VariableDeclaration","scope":75969,"src":"10587:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":75893,"nodeType":"UserDefinedTypeName","pathNode":{"id":75892,"name":"Gear.StakerRewards","nameLocations":["10587:4:160","10592:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":83052,"src":"10587:18:160"},"referencedDeclaration":83052,"src":"10587:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":75899,"initialValue":{"baseExpression":{"expression":{"id":75895,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10623:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10635:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"10623:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75898,"indexExpression":{"id":75897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10648:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10623:27:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10587:63:160"},{"condition":{"id":75906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10669:33:160","subExpression":{"arguments":[{"expression":{"id":75903,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"10688:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10696:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"10688:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75900,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10670:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10672:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10670:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10679:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"10670:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10670:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75911,"nodeType":"IfStatement","src":"10665:99:160","trueBody":{"id":75910,"nodeType":"Block","src":"10704:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75907,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"10729:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10729:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75909,"nodeType":"RevertStatement","src":"10722:27:160"}]}},{"assignments":[75913],"declarations":[{"constant":false,"id":75913,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10786:14:160","nodeType":"VariableDeclaration","scope":75969,"src":"10778:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75912,"name":"address","nodeType":"ElementaryTypeName","src":"10778:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75923,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":75919,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"10834:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10842:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"10834:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75916,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10811:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10813:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10811:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10820:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":84386,"src":"10811:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":75921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10811:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":75915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10803:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75914,"name":"address","nodeType":"ElementaryTypeName","src":"10803:7:160","typeDescriptions":{}}},"id":75922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10803:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10778:71:160"},{"assignments":[75925],"declarations":[{"constant":false,"id":75925,"mutability":"mutable","name":"data","nameLocation":"10877:4:160","nodeType":"VariableDeclaration","scope":75969,"src":"10864:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75924,"name":"bytes","nodeType":"ElementaryTypeName","src":"10864:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75940,"initialValue":{"arguments":[{"id":75928,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75844,"src":"10895:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":75929,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"10906:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10908:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"10906:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":75933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10927:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10921:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75931,"name":"bytes","nodeType":"ElementaryTypeName","src":"10921:5:160","typeDescriptions":{}}},"id":75934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10921:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":75937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10938:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10932:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75935,"name":"bytes","nodeType":"ElementaryTypeName","src":"10932:5:160","typeDescriptions":{}}},"id":75938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10932:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75926,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10888:6:160","memberName":"encode","nodeType":"MemberAccess","src":"10884:10:160","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10884:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10864:78:160"},{"expression":{"arguments":[{"expression":{"id":75945,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"11012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11014:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"11012:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75947,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11022:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11034:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"11022:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75949,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11041:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11049:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83051,"src":"11041:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75951,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75925,"src":"11057:4:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75942,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75913,"src":"10978:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75941,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"10956:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":75944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10994:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":72068,"src":"10956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory) external"}},"id":75952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:106:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75953,"nodeType":"ExpressionStatement","src":"10956:106:160"},{"expression":{"id":75967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75954,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11077:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75958,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11110:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75961,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11146:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11154:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83049,"src":"11146:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75963,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11161:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83052_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11169:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83051,"src":"11161:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75959,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11129:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75960,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11133:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11129:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11129:47:160","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":75956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11097:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75955,"name":"bytes","nodeType":"ElementaryTypeName","src":"11097:5:160","typeDescriptions":{}}},"id":75957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11103:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11097:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11097:80:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11077:100:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75968,"nodeType":"ExpressionStatement","src":"11077:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75882,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10531:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75883,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"10535:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83041,"src":"10535:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83052_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10560:6:160","memberName":"length","nodeType":"MemberAccess","src":"10535:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10531:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75970,"initializationExpression":{"assignments":[75879],"declarations":[{"constant":false,"id":75879,"mutability":"mutable","name":"i","nameLocation":"10524:1:160","nodeType":"VariableDeclaration","scope":75970,"src":"10516:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75878,"name":"uint256","nodeType":"ElementaryTypeName","src":"10516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75881,"initialValue":{"hexValue":"30","id":75880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10528:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10516:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10568:3:160","subExpression":{"id":75887,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75879,"src":"10570:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75889,"nodeType":"ExpressionStatement","src":"10568:3:160"},"nodeType":"ForStatement","src":"10511:677:160"},{"expression":{"arguments":[{"arguments":[{"id":75975,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75876,"src":"11228:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75978,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11264:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11276:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83043,"src":"11264:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75980,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75842,"src":"11289:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11301:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83045,"src":"11289:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11247:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11251:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11247:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11247:60:160","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":75973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11215:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75972,"name":"bytes","nodeType":"ElementaryTypeName","src":"11215:5:160","typeDescriptions":{}}},"id":75974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11221:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11215:12:160","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":"11215:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75971,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11205:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:104:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75848,"id":75985,"nodeType":"Return","src":"11198:111:160"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10101:23:160","parameters":{"id":75845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75842,"mutability":"mutable","name":"_commitment","nameLocation":"10161:11:160","nodeType":"VariableDeclaration","scope":75987,"src":"10125:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":75841,"nodeType":"UserDefinedTypeName","pathNode":{"id":75840,"name":"Gear.StakerRewardsCommitment","nameLocations":["10125:4:160","10130:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"10125:28:160"},"referencedDeclaration":83046,"src":"10125:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":75844,"mutability":"mutable","name":"timestamp","nameLocation":"10181:9:160","nodeType":"VariableDeclaration","scope":75987,"src":"10174:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75843,"name":"uint48","nodeType":"ElementaryTypeName","src":"10174:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10124:67:160"},"returnParameters":{"id":75848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75987,"src":"10226:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10226:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10225:9:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76018,"nodeType":"FunctionDefinition","src":"11322:236:160","nodes":[],"body":{"id":76017,"nodeType":"Block","src":"11407:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75998,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11432:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75997,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77094,"src":"11417:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11417:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76000,"nodeType":"ExpressionStatement","src":"11417:22:160"},{"expression":{"arguments":[{"id":76002,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11472:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76003,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75991,"src":"11480:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76001,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77141,"src":"11449:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":76004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11449:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76005,"nodeType":"ExpressionStatement","src":"11449:40:160"},{"expression":{"arguments":[{"id":76010,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11525:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76013,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75991,"src":"11541:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11533:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":76011,"name":"uint160","nodeType":"ElementaryTypeName","src":"11533:7:160","typeDescriptions":{}}},"id":76014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11533:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76006,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11500:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11511:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11500:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11518:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84212,"src":"11500:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":76015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76016,"nodeType":"ExpressionStatement","src":"11500:51:160"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75994,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75989,"src":"11399:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75995,"kind":"modifierInvocation","modifierName":{"id":75993,"name":"vaultOwner","nameLocations":["11388:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11388:10:160"},"nodeType":"ModifierInvocation","src":"11388:18:160"}],"name":"registerVault","nameLocation":"11331:13:160","parameters":{"id":75992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75989,"mutability":"mutable","name":"_vault","nameLocation":"11353:6:160","nodeType":"VariableDeclaration","scope":76018,"src":"11345:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75988,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75991,"mutability":"mutable","name":"_rewards","nameLocation":"11369:8:160","nodeType":"VariableDeclaration","scope":76018,"src":"11361:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75990,"name":"address","nodeType":"ElementaryTypeName","src":"11361:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11344:34:160"},"returnParameters":{"id":75996,"nodeType":"ParameterList","parameters":[],"src":"11407:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76034,"nodeType":"FunctionDefinition","src":"11564:113:160","nodes":[],"body":{"id":76033,"nodeType":"Block","src":"11628:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76030,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76020,"src":"11664:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76026,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11638:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11649:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11638:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11656:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84306,"src":"11638:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76032,"nodeType":"ExpressionStatement","src":"11638:32:160"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76023,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76020,"src":"11621:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76024,"kind":"modifierInvocation","modifierName":{"id":76022,"name":"vaultOwner","nameLocations":["11610:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11610:10:160"},"nodeType":"ModifierInvocation","src":"11610:17:160"}],"name":"disableVault","nameLocation":"11573:12:160","parameters":{"id":76021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76020,"mutability":"mutable","name":"vault","nameLocation":"11594:5:160","nodeType":"VariableDeclaration","scope":76034,"src":"11586:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76019,"name":"address","nodeType":"ElementaryTypeName","src":"11586:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11585:15:160"},"returnParameters":{"id":76025,"nodeType":"ParameterList","parameters":[],"src":"11628:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76050,"nodeType":"FunctionDefinition","src":"11683:111:160","nodes":[],"body":{"id":76049,"nodeType":"Block","src":"11746:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76046,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"11781:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76042,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11756:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76044,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11756:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11774:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84259,"src":"11756:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76048,"nodeType":"ExpressionStatement","src":"11756:31:160"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76039,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"11739:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76040,"kind":"modifierInvocation","modifierName":{"id":76038,"name":"vaultOwner","nameLocations":["11728:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11728:10:160"},"nodeType":"ModifierInvocation","src":"11728:17:160"}],"name":"enableVault","nameLocation":"11692:11:160","parameters":{"id":76037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76036,"mutability":"mutable","name":"vault","nameLocation":"11712:5:160","nodeType":"VariableDeclaration","scope":76050,"src":"11704:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76035,"name":"address","nodeType":"ElementaryTypeName","src":"11704:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11703:15:160"},"returnParameters":{"id":76041,"nodeType":"ParameterList","parameters":[],"src":"11746:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76098,"nodeType":"FunctionDefinition","src":"11800:355:160","nodes":[],"body":{"id":76097,"nodeType":"Block","src":"11867:288:160","nodes":[],"statements":[{"assignments":[76060],"declarations":[{"constant":false,"id":76060,"mutability":"mutable","name":"$","nameLocation":"11893:1:160","nodeType":"VariableDeclaration","scope":76097,"src":"11877:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76059,"nodeType":"UserDefinedTypeName","pathNode":{"id":76058,"name":"Storage","nameLocations":["11877:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"11877:7:160"},"referencedDeclaration":73928,"src":"11877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76063,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76061,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"11897:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11897:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11877:30:160"},{"assignments":[null,76065],"declarations":[null,{"constant":false,"id":76065,"mutability":"mutable","name":"disabledTime","nameLocation":"11927:12:160","nodeType":"VariableDeclaration","scope":76097,"src":"11920:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76064,"name":"uint48","nodeType":"ElementaryTypeName","src":"11920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76071,"initialValue":{"arguments":[{"id":76069,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"11961:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76066,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"11943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11945:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11943:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11952:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"11943:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11943:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11917:50:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76072,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"11982:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11998:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11982:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76075,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"12003:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":76076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12008:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"12003:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76078,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"12022:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76079,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"12037:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12039:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"12037:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12022:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12003:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11982:73:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76088,"nodeType":"IfStatement","src":"11978:138:160","trueBody":{"id":76087,"nodeType":"Block","src":"12057:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76084,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73764,"src":"12078:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76086,"nodeType":"RevertStatement","src":"12071:34:160"}]}},{"expression":{"arguments":[{"id":76094,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"12142:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76089,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"12126:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12128:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"12126:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12135:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"12126:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":76095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12126:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76096,"nodeType":"ExpressionStatement","src":"12126:22:160"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76055,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"11860:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76056,"kind":"modifierInvocation","modifierName":{"id":76054,"name":"vaultOwner","nameLocations":["11849:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77257,"src":"11849:10:160"},"nodeType":"ModifierInvocation","src":"11849:17:160"}],"name":"unregisterVault","nameLocation":"11809:15:160","parameters":{"id":76053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76052,"mutability":"mutable","name":"vault","nameLocation":"11833:5:160","nodeType":"VariableDeclaration","scope":76098,"src":"11825:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76051,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11824:15:160"},"returnParameters":{"id":76057,"nodeType":"ParameterList","parameters":[],"src":"11867:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76294,"nodeType":"FunctionDefinition","src":"12161:1642:160","nodes":[],"body":{"id":76293,"nodeType":"Block","src":"12260:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76109,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"12278:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12294:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12278:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76112,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73836,"src":"12297:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12297:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76108,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12270:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12270:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76115,"nodeType":"ExpressionStatement","src":"12270:64:160"},{"assignments":[76120,76123],"declarations":[{"constant":false,"id":76120,"mutability":"mutable","name":"activeOperators","nameLocation":"12363:15:160","nodeType":"VariableDeclaration","scope":76293,"src":"12346:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76118,"name":"address","nodeType":"ElementaryTypeName","src":"12346:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76119,"nodeType":"ArrayTypeName","src":"12346:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76123,"mutability":"mutable","name":"stakes","nameLocation":"12397:6:160","nodeType":"VariableDeclaration","scope":76293,"src":"12380:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76121,"name":"uint256","nodeType":"ElementaryTypeName","src":"12380:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76122,"nodeType":"ArrayTypeName","src":"12380:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":76127,"initialValue":{"arguments":[{"id":76125,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"12433:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76124,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76437,"src":"12407:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint48) view returns (address[] memory,uint256[] memory)"}},"id":76126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12407:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12345:91:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76128,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12451:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12467:6:160","memberName":"length","nodeType":"MemberAccess","src":"12451:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76130,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"12477:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76135,"nodeType":"IfStatement","src":"12447:92:160","trueBody":{"id":76134,"nodeType":"Block","src":"12492:47:160","statements":[{"expression":{"id":76132,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12513:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76107,"id":76133,"nodeType":"Return","src":"12506:22:160"}]}},{"assignments":[76137],"declarations":[{"constant":false,"id":76137,"mutability":"mutable","name":"n","nameLocation":"12591:1:160","nodeType":"VariableDeclaration","scope":76293,"src":"12583:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76136,"name":"uint256","nodeType":"ElementaryTypeName","src":"12583:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76140,"initialValue":{"expression":{"id":76138,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12595:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12611:6:160","memberName":"length","nodeType":"MemberAccess","src":"12595:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12583:34:160"},{"body":{"id":76218,"nodeType":"Block","src":"12659:336:160","statements":[{"body":{"id":76216,"nodeType":"Block","src":"12713:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76165,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12735:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76167,"indexExpression":{"id":76166,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12742:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12735:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":76168,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12747:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76172,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76169,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12754:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12758:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12754:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12747:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12735:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76215,"nodeType":"IfStatement","src":"12731:240:160","trueBody":{"id":76214,"nodeType":"Block","src":"12762:209:160","statements":[{"expression":{"id":76192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76174,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12785:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76176,"indexExpression":{"id":76175,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12792:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12785:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76177,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12796:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76181,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76178,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12803:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12807:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12803:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12796:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76182,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12784:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76183,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12814:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76187,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76184,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12821:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12825:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12821:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12814:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76188,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"12829:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76190,"indexExpression":{"id":76189,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12836:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12829:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12813:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12784:55:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76193,"nodeType":"ExpressionStatement","src":"12784:55:160"},{"expression":{"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76194,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12862:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76196,"indexExpression":{"id":76195,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12878:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12862:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76197,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12882:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76201,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76198,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12898:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12902:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12898:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12882:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76202,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12861:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76203,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12909:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76207,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76204,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12925:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12929:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12925:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12909:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76208,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12933:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76210,"indexExpression":{"id":76209,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12949:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12933:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76211,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12908:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12861:91:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76213,"nodeType":"ExpressionStatement","src":"12861:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76155,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12693:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76156,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"12697:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12701:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12697:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76159,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12705:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12697:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12693:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76217,"initializationExpression":{"assignments":[76152],"declarations":[{"constant":false,"id":76152,"mutability":"mutable","name":"j","nameLocation":"12686:1:160","nodeType":"VariableDeclaration","scope":76217,"src":"12678:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76151,"name":"uint256","nodeType":"ElementaryTypeName","src":"12678:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76154,"initialValue":{"hexValue":"30","id":76153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12690:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12678:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12708:3:160","subExpression":{"id":76162,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12708:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76164,"nodeType":"ExpressionStatement","src":"12708:3:160"},"nodeType":"ForStatement","src":"12673:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76145,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12647:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76146,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"12651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12647:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76219,"initializationExpression":{"assignments":[76142],"declarations":[{"constant":false,"id":76142,"mutability":"mutable","name":"i","nameLocation":"12640:1:160","nodeType":"VariableDeclaration","scope":76219,"src":"12632:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76141,"name":"uint256","nodeType":"ElementaryTypeName","src":"12632:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76144,"initialValue":{"hexValue":"30","id":76143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12644:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12632:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:160","subExpression":{"id":76148,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"12654:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76150,"nodeType":"ExpressionStatement","src":"12654:3:160"},"nodeType":"ForStatement","src":"12627:368:160"},{"assignments":[76221],"declarations":[{"constant":false,"id":76221,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13070:14:160","nodeType":"VariableDeclaration","scope":76293,"src":"13062:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76220,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76223,"initialValue":{"hexValue":"31","id":76222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13087:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13062:26:160"},{"assignments":[76225],"declarations":[{"constant":false,"id":76225,"mutability":"mutable","name":"lastStake","nameLocation":"13106:9:160","nodeType":"VariableDeclaration","scope":76293,"src":"13098:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76224,"name":"uint256","nodeType":"ElementaryTypeName","src":"13098:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76231,"initialValue":{"baseExpression":{"id":76226,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"13118:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76230,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76227,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13125:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13141:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13125:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13118:25:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13098:45:160"},{"body":{"id":76255,"nodeType":"Block","src":"13218:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76243,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76123,"src":"13236:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76245,"indexExpression":{"id":76244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13243:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13236:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76246,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76225,"src":"13249:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13236:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76250,"nodeType":"IfStatement","src":"13232:66:160","trueBody":{"id":76249,"nodeType":"Block","src":"13260:38:160","statements":[{"id":76248,"nodeType":"Break","src":"13278:5:160"}]}},{"expression":{"id":76253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76251,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13311:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13329:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13311:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76254,"nodeType":"ExpressionStatement","src":"13311:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76236,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13185:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76237,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13189:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13205:6:160","memberName":"length","nodeType":"MemberAccess","src":"13189:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13185:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76256,"initializationExpression":{"assignments":[76233],"declarations":[{"constant":false,"id":76233,"mutability":"mutable","name":"i","nameLocation":"13166:1:160","nodeType":"VariableDeclaration","scope":76256,"src":"13158:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76232,"name":"uint256","nodeType":"ElementaryTypeName","src":"13158:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76235,"initialValue":{"id":76234,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13170:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13158:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13213:3:160","subExpression":{"id":76240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76233,"src":"13213:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76242,"nodeType":"ExpressionStatement","src":"13213:3:160"},"nodeType":"ForStatement","src":"13153:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76257,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13355:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":76258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13372:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13355:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76289,"nodeType":"IfStatement","src":"13351:316:160","trueBody":{"id":76288,"nodeType":"Block","src":"13375:292:160","statements":[{"assignments":[76261],"declarations":[{"constant":false,"id":76261,"mutability":"mutable","name":"randomIndex","nameLocation":"13486:11:160","nodeType":"VariableDeclaration","scope":76288,"src":"13478:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76260,"name":"uint256","nodeType":"ElementaryTypeName","src":"13478:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76273,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":76267,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76100,"src":"13535:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":76265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13518:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13522:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"13518:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13518:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76264,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13508:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13508:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13500:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76262,"name":"uint256","nodeType":"ElementaryTypeName","src":"13500:7:160","typeDescriptions":{}}},"id":76270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13500:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":76271,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76221,"src":"13543:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13500:57:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13478:79:160"},{"expression":{"id":76286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76274,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13571:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76278,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76275,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13587:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13603:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13587:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13571:34:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76279,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13608:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76285,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76280,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76102,"src":"13624:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76281,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76261,"src":"13640:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13624:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13654:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13624:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13608:48:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13571:85:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76287,"nodeType":"ExpressionStatement","src":"13571:85:160"}]}},{"AST":{"nativeSrc":"13702:62:160","nodeType":"YulBlock","src":"13702:62:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13723:15:160","nodeType":"YulIdentifier","src":"13723:15:160"},{"name":"maxValidators","nativeSrc":"13740:13:160","nodeType":"YulIdentifier","src":"13740:13:160"}],"functionName":{"name":"mstore","nativeSrc":"13716:6:160","nodeType":"YulIdentifier","src":"13716:6:160"},"nativeSrc":"13716:38:160","nodeType":"YulFunctionCall","src":"13716:38:160"},"nativeSrc":"13716:38:160","nodeType":"YulExpressionStatement","src":"13716:38:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76120,"isOffset":false,"isSlot":false,"src":"13723:15:160","valueSize":1},{"declaration":76102,"isOffset":false,"isSlot":false,"src":"13740:13:160","valueSize":1}],"flags":["memory-safe"],"id":76290,"nodeType":"InlineAssembly","src":"13677:87:160"},{"expression":{"id":76291,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13781:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76107,"id":76292,"nodeType":"Return","src":"13774:22:160"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12170:14:160","parameters":{"id":76103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76100,"mutability":"mutable","name":"ts","nameLocation":"12192:2:160","nodeType":"VariableDeclaration","scope":76294,"src":"12185:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76099,"name":"uint48","nodeType":"ElementaryTypeName","src":"12185:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76102,"mutability":"mutable","name":"maxValidators","nameLocation":"12204:13:160","nodeType":"VariableDeclaration","scope":76294,"src":"12196:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76101,"name":"uint256","nodeType":"ElementaryTypeName","src":"12196:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12184:34:160"},"returnParameters":{"id":76107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76294,"src":"12242:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76104,"name":"address","nodeType":"ElementaryTypeName","src":"12242:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76105,"nodeType":"ArrayTypeName","src":"12242:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12241:18:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76335,"nodeType":"FunctionDefinition","src":"13809:372:160","nodes":[],"body":{"id":76334,"nodeType":"Block","src":"13923:258:160","nodes":[],"statements":[{"assignments":[76307,76309],"declarations":[{"constant":false,"id":76307,"mutability":"mutable","name":"enabledTime","nameLocation":"13941:11:160","nodeType":"VariableDeclaration","scope":76334,"src":"13934:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76306,"name":"uint48","nodeType":"ElementaryTypeName","src":"13934:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76309,"mutability":"mutable","name":"disabledTime","nameLocation":"13961:12:160","nodeType":"VariableDeclaration","scope":76334,"src":"13954:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76308,"name":"uint48","nodeType":"ElementaryTypeName","src":"13954:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76316,"initialValue":{"arguments":[{"id":76314,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"14007:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76310,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"13977:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13988:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"13977:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13998:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84365,"src":"13977:29:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13933:83:160"},{"condition":{"id":76322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14030:44:160","subExpression":{"arguments":[{"id":76318,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76307,"src":"14044:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76319,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76309,"src":"14057:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76320,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"14071:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76317,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"14031:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14031:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76326,"nodeType":"IfStatement","src":"14026:83:160","trueBody":{"id":76325,"nodeType":"Block","src":"14076:33:160","statements":[{"expression":{"hexValue":"30","id":76323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14097:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":76305,"id":76324,"nodeType":"Return","src":"14090:8:160"}]}},{"expression":{"id":76332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76327,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76304,"src":"14119:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76329,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"14161:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76330,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"14171:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76328,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"14127:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14119:55:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76333,"nodeType":"ExpressionStatement","src":"14119:55:160"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76301,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"13895:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76302,"kind":"modifierInvocation","modifierName":{"id":76300,"name":"validTimestamp","nameLocations":["13880:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77151,"src":"13880:14:160"},"nodeType":"ModifierInvocation","src":"13880:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13818:18:160","parameters":{"id":76299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76296,"mutability":"mutable","name":"operator","nameLocation":"13845:8:160","nodeType":"VariableDeclaration","scope":76335,"src":"13837:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76295,"name":"address","nodeType":"ElementaryTypeName","src":"13837:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76298,"mutability":"mutable","name":"ts","nameLocation":"13862:2:160","nodeType":"VariableDeclaration","scope":76335,"src":"13855:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76297,"name":"uint48","nodeType":"ElementaryTypeName","src":"13855:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13836:29:160"},"returnParameters":{"id":76305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76304,"mutability":"mutable","name":"stake","nameLocation":"13916:5:160","nodeType":"VariableDeclaration","scope":76335,"src":"13908:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76303,"name":"uint256","nodeType":"ElementaryTypeName","src":"13908:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13907:15:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76437,"nodeType":"FunctionDefinition","src":"14224:940:160","nodes":[],"body":{"id":76436,"nodeType":"Block","src":"14405:759:160","nodes":[],"statements":[{"assignments":[76351],"declarations":[{"constant":false,"id":76351,"mutability":"mutable","name":"$","nameLocation":"14431:1:160","nodeType":"VariableDeclaration","scope":76436,"src":"14415:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76350,"nodeType":"UserDefinedTypeName","pathNode":{"id":76349,"name":"Storage","nameLocations":["14415:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"14415:7:160"},"referencedDeclaration":73928,"src":"14415:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76354,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76352,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"14435:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14435:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14415:30:160"},{"expression":{"id":76364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76355,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76344,"src":"14455:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76359,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14487:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14487:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14499:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14487:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14487:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14473:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76356,"name":"address","nodeType":"ElementaryTypeName","src":"14477:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76357,"nodeType":"ArrayTypeName","src":"14477:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14455:53:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76365,"nodeType":"ExpressionStatement","src":"14455:53:160"},{"expression":{"id":76375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76366,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"14518:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76370,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14541:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14543:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14541:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14553:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14541:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14541:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14527:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":76367,"name":"uint256","nodeType":"ElementaryTypeName","src":"14531:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76368,"nodeType":"ArrayTypeName","src":"14531:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":76374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14527:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14518:44:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76376,"nodeType":"ExpressionStatement","src":"14518:44:160"},{"assignments":[76378],"declarations":[{"constant":false,"id":76378,"mutability":"mutable","name":"operatorIdx","nameLocation":"14581:11:160","nodeType":"VariableDeclaration","scope":76436,"src":"14573:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76377,"name":"uint256","nodeType":"ElementaryTypeName","src":"14573:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76380,"initialValue":{"hexValue":"30","id":76379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14595:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14573:23:160"},{"body":{"id":76433,"nodeType":"Block","src":"14654:369:160","statements":[{"assignments":[76394,76396,76398],"declarations":[{"constant":false,"id":76394,"mutability":"mutable","name":"operator","nameLocation":"14677:8:160","nodeType":"VariableDeclaration","scope":76433,"src":"14669:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76393,"name":"address","nodeType":"ElementaryTypeName","src":"14669:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76396,"mutability":"mutable","name":"enabled","nameLocation":"14694:7:160","nodeType":"VariableDeclaration","scope":76433,"src":"14687:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76395,"name":"uint48","nodeType":"ElementaryTypeName","src":"14687:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76398,"mutability":"mutable","name":"disabled","nameLocation":"14710:8:160","nodeType":"VariableDeclaration","scope":76433,"src":"14703:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76397,"name":"uint48","nodeType":"ElementaryTypeName","src":"14703:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76404,"initialValue":{"arguments":[{"id":76402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14746:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76399,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14722:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14724:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14722:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14734:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84341,"src":"14722:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14722:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14668:80:160"},{"condition":{"id":76410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14767:36:160","subExpression":{"arguments":[{"id":76406,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76396,"src":"14781:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76407,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76398,"src":"14790:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76408,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14800:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76405,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"14768:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14768:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76413,"nodeType":"IfStatement","src":"14763:83:160","trueBody":{"id":76412,"nodeType":"Block","src":"14805:41:160","statements":[{"id":76411,"nodeType":"Continue","src":"14823:8:160"}]}},{"expression":{"id":76418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76414,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76344,"src":"14860:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76416,"indexExpression":{"id":76415,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14876:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14860:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76417,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76394,"src":"14891:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14860:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76419,"nodeType":"ExpressionStatement","src":"14860:39:160"},{"expression":{"id":76427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76420,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"14913:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76422,"indexExpression":{"id":76421,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14920:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14913:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76424,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76394,"src":"14969:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76425,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14979:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76423,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"14935:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14935:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14913:69:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76428,"nodeType":"ExpressionStatement","src":"14913:69:160"},{"expression":{"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76429,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"14996:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15011:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14996:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76432,"nodeType":"ExpressionStatement","src":"14996:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14623:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76385,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76351,"src":"14627:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14629:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14627:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14639:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14627:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14623:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76434,"initializationExpression":{"assignments":[76382],"declarations":[{"constant":false,"id":76382,"mutability":"mutable","name":"i","nameLocation":"14620:1:160","nodeType":"VariableDeclaration","scope":76434,"src":"14612:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76381,"name":"uint256","nodeType":"ElementaryTypeName","src":"14612:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76383,"nodeType":"VariableDeclarationStatement","src":"14612:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14649:3:160","subExpression":{"id":76390,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76382,"src":"14651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76392,"nodeType":"ExpressionStatement","src":"14649:3:160"},"nodeType":"ForStatement","src":"14607:416:160"},{"AST":{"nativeSrc":"15058:100:160","nodeType":"YulBlock","src":"15058:100:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15079:15:160","nodeType":"YulIdentifier","src":"15079:15:160"},{"name":"operatorIdx","nativeSrc":"15096:11:160","nodeType":"YulIdentifier","src":"15096:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15072:6:160","nodeType":"YulIdentifier","src":"15072:6:160"},"nativeSrc":"15072:36:160","nodeType":"YulFunctionCall","src":"15072:36:160"},"nativeSrc":"15072:36:160","nodeType":"YulExpressionStatement","src":"15072:36:160"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15128:6:160","nodeType":"YulIdentifier","src":"15128:6:160"},{"name":"operatorIdx","nativeSrc":"15136:11:160","nodeType":"YulIdentifier","src":"15136:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15121:6:160","nodeType":"YulIdentifier","src":"15121:6:160"},"nativeSrc":"15121:27:160","nodeType":"YulFunctionCall","src":"15121:27:160"},"nativeSrc":"15121:27:160","nodeType":"YulExpressionStatement","src":"15121:27:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76344,"isOffset":false,"isSlot":false,"src":"15079:15:160","valueSize":1},{"declaration":76378,"isOffset":false,"isSlot":false,"src":"15096:11:160","valueSize":1},{"declaration":76378,"isOffset":false,"isSlot":false,"src":"15136:11:160","valueSize":1},{"declaration":76347,"isOffset":false,"isSlot":false,"src":"15128:6:160","valueSize":1}],"flags":["memory-safe"],"id":76435,"nodeType":"InlineAssembly","src":"15033:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76340,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76337,"src":"14321:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76341,"kind":"modifierInvocation","modifierName":{"id":76339,"name":"validTimestamp","nameLocations":["14306:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77151,"src":"14306:14:160"},"nodeType":"ModifierInvocation","src":"14306:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14233:25:160","parameters":{"id":76338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76337,"mutability":"mutable","name":"ts","nameLocation":"14266:2:160","nodeType":"VariableDeclaration","scope":76437,"src":"14259:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76336,"name":"uint48","nodeType":"ElementaryTypeName","src":"14259:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14258:11:160"},"returnParameters":{"id":76348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76344,"mutability":"mutable","name":"activeOperators","nameLocation":"14359:15:160","nodeType":"VariableDeclaration","scope":76437,"src":"14342:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76342,"name":"address","nodeType":"ElementaryTypeName","src":"14342:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76343,"nodeType":"ArrayTypeName","src":"14342:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76347,"mutability":"mutable","name":"stakes","nameLocation":"14393:6:160","nodeType":"VariableDeclaration","scope":76437,"src":"14376:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76345,"name":"uint256","nodeType":"ElementaryTypeName","src":"14376:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76346,"nodeType":"ArrayTypeName","src":"14376:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14341:59:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":76553,"nodeType":"FunctionDefinition","src":"15170:952:160","nodes":[],"body":{"id":76552,"nodeType":"Block","src":"15228:894:160","nodes":[],"statements":[{"assignments":[76446],"declarations":[{"constant":false,"id":76446,"mutability":"mutable","name":"$","nameLocation":"15254:1:160","nodeType":"VariableDeclaration","scope":76552,"src":"15238:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76445,"nodeType":"UserDefinedTypeName","pathNode":{"id":76444,"name":"Storage","nameLocations":["15238:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"15238:7:160"},"referencedDeclaration":73928,"src":"15238:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76449,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76447,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"15258:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15258:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15238:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76450,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15283:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15287:6:160","memberName":"sender","nodeType":"MemberAccess","src":"15283:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76452,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15297:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15299:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"15297:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83224,"src":"15297:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15283:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76460,"nodeType":"IfStatement","src":"15279:101:160","trueBody":{"id":76459,"nodeType":"Block","src":"15329:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76456,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"15350:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15350:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76458,"nodeType":"RevertStatement","src":"15343:26:160"}]}},{"body":{"id":76550,"nodeType":"Block","src":"15428:688:160","statements":[{"assignments":[76473],"declarations":[{"constant":false,"id":76473,"mutability":"mutable","name":"slashData","nameLocation":"15461:9:160","nodeType":"VariableDeclaration","scope":76550,"src":"15442:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":76472,"nodeType":"UserDefinedTypeName","pathNode":{"id":76471,"name":"SlashData","nameLocations":["15442:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15442:9:160"},"referencedDeclaration":73942,"src":"15442:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":76477,"initialValue":{"baseExpression":{"id":76474,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15473:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76476,"indexExpression":{"id":76475,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15478:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15473:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15442:38:160"},{"condition":{"id":76484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15498:41:160","subExpression":{"arguments":[{"expression":{"id":76481,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15520:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15530:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"15520:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76478,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15499:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76479,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15501:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"15499:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15511:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15499:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15499:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76489,"nodeType":"IfStatement","src":"15494:110:160","trueBody":{"id":76488,"nodeType":"Block","src":"15541:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76485,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73812,"src":"15566:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15566:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76487,"nodeType":"RevertStatement","src":"15559:30:160"}]}},{"body":{"id":76548,"nodeType":"Block","src":"15668:438:160","statements":[{"assignments":[76503],"declarations":[{"constant":false,"id":76503,"mutability":"mutable","name":"vaultData","nameLocation":"15710:9:160","nodeType":"VariableDeclaration","scope":76548,"src":"15686:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":76502,"nodeType":"UserDefinedTypeName","pathNode":{"id":76501,"name":"VaultSlashData","nameLocations":["15686:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":73933,"src":"15686:14:160"},"referencedDeclaration":73933,"src":"15686:14:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":76508,"initialValue":{"baseExpression":{"expression":{"id":76504,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15722:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15732:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15722:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76507,"indexExpression":{"id":76506,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15739:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15722:19:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15686:55:160"},{"condition":{"id":76515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15764:35:160","subExpression":{"arguments":[{"expression":{"id":76512,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"15783:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15793:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15783:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76509,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"15765:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"15765:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15774:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15765:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15765:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76520,"nodeType":"IfStatement","src":"15760:109:160","trueBody":{"id":76519,"nodeType":"Block","src":"15801:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76516,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"15830:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15830:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76518,"nodeType":"RevertStatement","src":"15823:27:160"}]}},{"assignments":[76522],"declarations":[{"constant":false,"id":76522,"mutability":"mutable","name":"slasher","nameLocation":"15895:7:160","nodeType":"VariableDeclaration","scope":76548,"src":"15887:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76521,"name":"address","nodeType":"ElementaryTypeName","src":"15887:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76529,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76524,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"15912:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15922:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15912:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76523,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"15905:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15929:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"15905:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15887:51:160"},{"expression":{"arguments":[{"expression":{"id":76534,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"16012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16014:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"16012:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76536,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"16026:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"16026:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76538,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"16046:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16056:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":73932,"src":"16046:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76540,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"16064:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16074:2:160","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":73937,"src":"16064:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16088:1:160","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":76543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16078:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76542,"name":"bytes","nodeType":"ElementaryTypeName","src":"16082:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76531,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76522,"src":"15969:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76530,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"15956:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:12:160","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":66489,"src":"15956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256,uint48,bytes memory) external returns (uint256)"}},"id":76546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:135:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76547,"nodeType":"ExpressionStatement","src":"15956:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76493,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15634:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76494,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76473,"src":"15638:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15648:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15638:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15655:6:160","memberName":"length","nodeType":"MemberAccess","src":"15638:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15634:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76549,"initializationExpression":{"assignments":[76491],"declarations":[{"constant":false,"id":76491,"mutability":"mutable","name":"j","nameLocation":"15631:1:160","nodeType":"VariableDeclaration","scope":76549,"src":"15623:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76490,"name":"uint256","nodeType":"ElementaryTypeName","src":"15623:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76492,"nodeType":"VariableDeclarationStatement","src":"15623:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15663:3:160","subExpression":{"id":76498,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15665:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76500,"nodeType":"ExpressionStatement","src":"15663:3:160"},"nodeType":"ForStatement","src":"15618:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15406:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76465,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76441,"src":"15410:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15415:6:160","memberName":"length","nodeType":"MemberAccess","src":"15410:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15406:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76551,"initializationExpression":{"assignments":[76462],"declarations":[{"constant":false,"id":76462,"mutability":"mutable","name":"i","nameLocation":"15403:1:160","nodeType":"VariableDeclaration","scope":76551,"src":"15395:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76461,"name":"uint256","nodeType":"ElementaryTypeName","src":"15395:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76463,"nodeType":"VariableDeclarationStatement","src":"15395:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15423:3:160","subExpression":{"id":76468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76462,"src":"15425:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76470,"nodeType":"ExpressionStatement","src":"15423:3:160"},"nodeType":"ForStatement","src":"15390:726:160"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15179:12:160","parameters":{"id":76442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76441,"mutability":"mutable","name":"data","nameLocation":"15213:4:160","nodeType":"VariableDeclaration","scope":76553,"src":"15192:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":76439,"nodeType":"UserDefinedTypeName","pathNode":{"id":76438,"name":"SlashData","nameLocations":["15192:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15192:9:160"},"referencedDeclaration":73942,"src":"15192:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":76440,"nodeType":"ArrayTypeName","src":"15192:11:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15191:27:160"},"returnParameters":{"id":76443,"nodeType":"ParameterList","parameters":[],"src":"15228:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76622,"nodeType":"FunctionDefinition","src":"16128:528:160","nodes":[],"body":{"id":76621,"nodeType":"Block","src":"16195:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76560,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16209:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16213:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16209:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76562,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16223:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16223:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16234:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"16223:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16244:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"16223:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16209:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76571,"nodeType":"IfStatement","src":"16205:108:160","trueBody":{"id":76570,"nodeType":"Block","src":"16263:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76567,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"16284:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16284:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76569,"nodeType":"RevertStatement","src":"16277:25:160"}]}},{"body":{"id":76619,"nodeType":"Block","src":"16364:286:160","statements":[{"assignments":[76584],"declarations":[{"constant":false,"id":76584,"mutability":"mutable","name":"slash","nameLocation":"16403:5:160","nodeType":"VariableDeclaration","scope":76619,"src":"16378:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":76583,"nodeType":"UserDefinedTypeName","pathNode":{"id":76582,"name":"SlashIdentifier","nameLocations":["16378:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16378:15:160"},"referencedDeclaration":73947,"src":"16378:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":76588,"initialValue":{"baseExpression":{"id":76585,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76557,"src":"16411:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76587,"indexExpression":{"id":76586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16419:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16411:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16378:43:160"},{"condition":{"id":76596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16440:40:160","subExpression":{"arguments":[{"expression":{"id":76593,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16468:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16474:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16468:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76589,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16441:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16452:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16441:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16459:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"16441:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76601,"nodeType":"IfStatement","src":"16436:106:160","trueBody":{"id":76600,"nodeType":"Block","src":"16482:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76597,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"16507:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16507:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76599,"nodeType":"RevertStatement","src":"16500:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":76611,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16613:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16619:5:160","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":73946,"src":"16613:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":76615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16636:1:160","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":76614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16626:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76613,"name":"bytes","nodeType":"ElementaryTypeName","src":"16630:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16626:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76604,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76584,"src":"16576:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16582:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16576:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76603,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"16569:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16589:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"16569:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76602,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"16556:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:160","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":66499,"src":"16556:56:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":76617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:83:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76618,"nodeType":"ExpressionStatement","src":"16556:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76575,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16339:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76576,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76557,"src":"16343:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:6:160","memberName":"length","nodeType":"MemberAccess","src":"16343:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16339:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76620,"initializationExpression":{"assignments":[76573],"declarations":[{"constant":false,"id":76573,"mutability":"mutable","name":"i","nameLocation":"16336:1:160","nodeType":"VariableDeclaration","scope":76620,"src":"16328:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76572,"name":"uint256","nodeType":"ElementaryTypeName","src":"16328:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76574,"nodeType":"VariableDeclarationStatement","src":"16328:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16359:3:160","subExpression":{"id":76579,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76573,"src":"16361:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76581,"nodeType":"ExpressionStatement","src":"16359:3:160"},"nodeType":"ForStatement","src":"16323:327:160"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16137:12:160","parameters":{"id":76558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76557,"mutability":"mutable","name":"slashes","nameLocation":"16177:7:160","nodeType":"VariableDeclaration","scope":76622,"src":"16150:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":76555,"nodeType":"UserDefinedTypeName","pathNode":{"id":76554,"name":"SlashIdentifier","nameLocations":["16150:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16150:15:160"},"referencedDeclaration":73947,"src":"16150:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":76556,"nodeType":"ArrayTypeName","src":"16150:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16149:36:160"},"returnParameters":{"id":76559,"nodeType":"ParameterList","parameters":[],"src":"16195:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76693,"nodeType":"FunctionDefinition","src":"16662:556:160","nodes":[],"body":{"id":76692,"nodeType":"Block","src":"16771:447:160","nodes":[],"statements":[{"assignments":[76633],"declarations":[{"constant":false,"id":76633,"mutability":"mutable","name":"$","nameLocation":"16797:1:160","nodeType":"VariableDeclaration","scope":76692,"src":"16781:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76632,"nodeType":"UserDefinedTypeName","pathNode":{"id":76631,"name":"Storage","nameLocations":["16781:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"16781:7:160"},"referencedDeclaration":73928,"src":"16781:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76634,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"16801:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16801:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16781:30:160"},{"body":{"id":76690,"nodeType":"Block","src":"16865:347:160","statements":[{"assignments":[76650,76652,76654],"declarations":[{"constant":false,"id":76650,"mutability":"mutable","name":"vault","nameLocation":"16888:5:160","nodeType":"VariableDeclaration","scope":76690,"src":"16880:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76649,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76652,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16902:16:160","nodeType":"VariableDeclaration","scope":76690,"src":"16895:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76651,"name":"uint48","nodeType":"ElementaryTypeName","src":"16895:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76654,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16927:17:160","nodeType":"VariableDeclaration","scope":76690,"src":"16920:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76653,"name":"uint48","nodeType":"ElementaryTypeName","src":"16920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76660,"initialValue":{"arguments":[{"id":76658,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16969:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76655,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16950:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16948:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16957:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84341,"src":"16948:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16948:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16879:92:160"},{"condition":{"id":76666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16990:54:160","subExpression":{"arguments":[{"id":76662,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76652,"src":"17004:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76663,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76654,"src":"17022:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76664,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76626,"src":"17041:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76661,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76722,"src":"16991:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16991:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76669,"nodeType":"IfStatement","src":"16986:101:160","trueBody":{"id":76668,"nodeType":"Block","src":"17046:41:160","statements":[{"id":76667,"nodeType":"Continue","src":"17064:8:160"}]}},{"expression":{"id":76688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76670,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76629,"src":"17101:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":76679,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"17160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17162:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"17160:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76681,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76624,"src":"17174:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76682,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76626,"src":"17184:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17198:1:160","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":76684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17188:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76683,"name":"bytes","nodeType":"ElementaryTypeName","src":"17192:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17188:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76673,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76650,"src":"17132:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76672,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"17125:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17139:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"17125:23:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76671,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"17110:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:7:160","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":65467,"src":"17110:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint48,bytes memory) view external returns (uint256)"}},"id":76687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17101:100:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76689,"nodeType":"ExpressionStatement","src":"17101:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16837:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76641,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76633,"src":"16841:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16843:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16841:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16850:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"16841:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16841:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16837:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76691,"initializationExpression":{"assignments":[76638],"declarations":[{"constant":false,"id":76638,"mutability":"mutable","name":"i","nameLocation":"16834:1:160","nodeType":"VariableDeclaration","scope":76691,"src":"16826:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76637,"name":"uint256","nodeType":"ElementaryTypeName","src":"16826:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76639,"nodeType":"VariableDeclarationStatement","src":"16826:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16860:3:160","subExpression":{"id":76646,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"16862:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76648,"nodeType":"ExpressionStatement","src":"16860:3:160"},"nodeType":"ForStatement","src":"16821:391:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16671:33:160","parameters":{"id":76627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76624,"mutability":"mutable","name":"operator","nameLocation":"16713:8:160","nodeType":"VariableDeclaration","scope":76693,"src":"16705:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76623,"name":"address","nodeType":"ElementaryTypeName","src":"16705:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76626,"mutability":"mutable","name":"ts","nameLocation":"16730:2:160","nodeType":"VariableDeclaration","scope":76693,"src":"16723:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76625,"name":"uint48","nodeType":"ElementaryTypeName","src":"16723:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16704:29:160"},"returnParameters":{"id":76630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76629,"mutability":"mutable","name":"stake","nameLocation":"16764:5:160","nodeType":"VariableDeclaration","scope":76693,"src":"16756:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76628,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16755:15:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76722,"nodeType":"FunctionDefinition","src":"17224:208:160","nodes":[],"body":{"id":76721,"nodeType":"Block","src":"17326:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76704,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"17343:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17358:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17343:16:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76707,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"17363:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76708,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76699,"src":"17378:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17363:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76711,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"17385:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17401:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17385:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76714,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"17406:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76715,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76699,"src":"17422:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17406:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17385:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":76718,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17384:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:82:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":76703,"id":76720,"nodeType":"Return","src":"17336:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17233:12:160","parameters":{"id":76700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76695,"mutability":"mutable","name":"enabledTime","nameLocation":"17253:11:160","nodeType":"VariableDeclaration","scope":76722,"src":"17246:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76694,"name":"uint48","nodeType":"ElementaryTypeName","src":"17246:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76697,"mutability":"mutable","name":"disabledTime","nameLocation":"17273:12:160","nodeType":"VariableDeclaration","scope":76722,"src":"17266:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76696,"name":"uint48","nodeType":"ElementaryTypeName","src":"17266:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76699,"mutability":"mutable","name":"ts","nameLocation":"17294:2:160","nodeType":"VariableDeclaration","scope":76722,"src":"17287:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76698,"name":"uint48","nodeType":"ElementaryTypeName","src":"17287:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17245:52:160"},"returnParameters":{"id":76703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76722,"src":"17320:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76701,"name":"bool","nodeType":"ElementaryTypeName","src":"17320:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17319:6:160"},"scope":77278,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76739,"nodeType":"FunctionDefinition","src":"17477:154:160","nodes":[],"body":{"id":76738,"nodeType":"Block","src":"17533:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76727,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76724,"src":"17547:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17563:1:160","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":76729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17555:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76728,"name":"address","nodeType":"ElementaryTypeName","src":"17555:7:160","typeDescriptions":{}}},"id":76731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17555:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17547:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76737,"nodeType":"IfStatement","src":"17543:82:160","trueBody":{"id":76736,"nodeType":"Block","src":"17567:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76733,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73779,"src":"17588:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17588:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76735,"nodeType":"RevertStatement","src":"17581:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17486:19:160","parameters":{"id":76725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76724,"mutability":"mutable","name":"hook","nameLocation":"17514:4:160","nodeType":"VariableDeclaration","scope":76739,"src":"17506:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76723,"name":"address","nodeType":"ElementaryTypeName","src":"17506:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17505:14:160"},"returnParameters":{"id":76726,"nodeType":"ParameterList","parameters":[],"src":"17533:0:160"},"scope":77278,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76827,"nodeType":"FunctionDefinition","src":"17637:2002:160","nodes":[],"body":{"id":76826,"nodeType":"Block","src":"17695:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76746,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"17713:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17715:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"17713:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17729:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17713:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76750,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73839,"src":"17732:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17732:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17705:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17705:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76753,"nodeType":"ExpressionStatement","src":"17705:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76755,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18102:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18104:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18102:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":76757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18129:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":76758,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18133:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18135:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"18133:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18129:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18102:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76762,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73842,"src":"18148:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18148:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18094:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18094:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76765,"nodeType":"ExpressionStatement","src":"18094:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76767,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18377:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18379:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"18377:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76769,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18402:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18404:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18402:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18377:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76772,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73845,"src":"18427:48:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18427:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76766,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18369:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18369:109:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76775,"nodeType":"ExpressionStatement","src":"18369:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76777,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18665:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18667:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"18665:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76779,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18687:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18689:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18687:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18665:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76782,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73848,"src":"18712:45:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18712:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18657:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18657:103:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76785,"nodeType":"ExpressionStatement","src":"18657:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76787,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"18840:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18842:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"18840:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18860:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18840:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76791,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73851,"src":"18863:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18863:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18832:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18832:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76794,"nodeType":"ExpressionStatement","src":"18832:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76796,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19112:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19114:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19112:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19139:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19112:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76800,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73854,"src":"19142:43:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19142:45:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19104:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19104:84:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76803,"nodeType":"ExpressionStatement","src":"19104:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76805,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19219:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19221:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"19219:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76807,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19239:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19241:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19239:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:44:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76810,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19267:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19269:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"19267:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:71:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76813,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73857,"src":"19304:40:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19304:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76804,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19198:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19198:158:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76816,"nodeType":"ExpressionStatement","src":"19198:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76818,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"19561:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19563:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"19561:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":76820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19592:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19561:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76822,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73860,"src":"19595:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19595:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76817,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19553:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19553:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76825,"nodeType":"ExpressionStatement","src":"19553:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17646:16:160","parameters":{"id":76743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76742,"mutability":"mutable","name":"$","nameLocation":"17679:1:160","nodeType":"VariableDeclaration","scope":76827,"src":"17663:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76741,"nodeType":"UserDefinedTypeName","pathNode":{"id":76740,"name":"Storage","nameLocations":["17663:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"17663:7:160"},"referencedDeclaration":73928,"src":"17663:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17662:19:160"},"returnParameters":{"id":76744,"nodeType":"ParameterList","parameters":[],"src":"17695:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77094,"nodeType":"FunctionDefinition","src":"19687:2572:160","nodes":[],"body":{"id":77093,"nodeType":"Block","src":"19735:2524:160","nodes":[],"statements":[{"assignments":[76834],"declarations":[{"constant":false,"id":76834,"mutability":"mutable","name":"$","nameLocation":"19761:1:160","nodeType":"VariableDeclaration","scope":77093,"src":"19745:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76833,"nodeType":"UserDefinedTypeName","pathNode":{"id":76832,"name":"Storage","nameLocations":["19745:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"19745:7:160"},"referencedDeclaration":73928,"src":"19745:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76835,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"19765:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19765:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19745:30:160"},{"condition":{"id":76846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19790:54:160","subExpression":{"arguments":[{"id":76844,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"19837:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":76839,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"19801:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19803:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"19801:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19813:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"19801:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76838,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"19791:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":76842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":76843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19828:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"19791:45:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":76845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76851,"nodeType":"IfStatement","src":"19786:109:160","trueBody":{"id":76850,"nodeType":"Block","src":"19846:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76847,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73752,"src":"19867:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19867:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76849,"nodeType":"RevertStatement","src":"19860:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76853,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"19927:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76852,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"19909:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$65208_$","typeString":"type(contract IMigratableEntity)"}},"id":76854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$65208","typeString":"contract IMigratableEntity"}},"id":76855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19935:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":65189,"src":"19909:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"19948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19950:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"19948:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19909:64:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76864,"nodeType":"IfStatement","src":"19905:128:160","trueBody":{"id":76863,"nodeType":"Block","src":"19975:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76860,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"19996:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19996:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76862,"nodeType":"RevertStatement","src":"19989:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76866,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20054:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76865,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20047:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20062:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":66904,"src":"20047:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76870,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20078:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20080:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"20078:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20047:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76877,"nodeType":"IfStatement","src":"20043:100:160","trueBody":{"id":76876,"nodeType":"Block","src":"20092:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76873,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"20113:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20113:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76875,"nodeType":"RevertStatement","src":"20106:26:160"}]}},{"assignments":[76879],"declarations":[{"constant":false,"id":76879,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20188:18:160","nodeType":"VariableDeclaration","scope":77093,"src":"20181:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76878,"name":"uint48","nodeType":"ElementaryTypeName","src":"20181:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76885,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76881,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20216:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76880,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20209:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:13:160","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":66946,"src":"20209:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20181:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76886,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76879,"src":"20253:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76887,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20274:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20276:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"20274:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20253:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76894,"nodeType":"IfStatement","src":"20249:107:160","trueBody":{"id":76893,"nodeType":"Block","src":"20299:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76890,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73755,"src":"20320:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20320:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76892,"nodeType":"RevertStatement","src":"20313:32:160"}]}},{"condition":{"id":76900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20403:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76896,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20411:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76895,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20404:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20419:22:160","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":66922,"src":"20404:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76905,"nodeType":"IfStatement","src":"20399:103:160","trueBody":{"id":76904,"nodeType":"Block","src":"20445:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76901,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"20466:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20466:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76903,"nodeType":"RevertStatement","src":"20459:32:160"}]}},{"assignments":[76908],"declarations":[{"constant":false,"id":76908,"mutability":"mutable","name":"delegator","nameLocation":"20527:9:160","nodeType":"VariableDeclaration","scope":77093,"src":"20512:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"},"typeName":{"id":76907,"nodeType":"UserDefinedTypeName","pathNode":{"id":76906,"name":"IBaseDelegator","nameLocations":["20512:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":65506,"src":"20512:14:160"},"referencedDeclaration":65506,"src":"20512:14:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":76916,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76911,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20561:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76910,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20554:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20569:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"20554:24:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76909,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20539:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20539:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20512:69:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":76919,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"20621:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20623:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"20621:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76917,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20595:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20605:15:160","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65453,"src":"20595:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":76921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20595:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":76924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20643:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76923,"name":"uint256","nodeType":"ElementaryTypeName","src":"20643:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76922,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20638:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20638:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20652:3:160","memberName":"max","nodeType":"MemberAccess","src":"20638:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76940,"nodeType":"IfStatement","src":"20591:158:160","trueBody":{"id":76939,"nodeType":"Block","src":"20657:92:160","statements":[{"expression":{"arguments":[{"id":76931,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"20700:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":76934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20725:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76933,"name":"uint256","nodeType":"ElementaryTypeName","src":"20725:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76932,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20720:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20720:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20734:3:160","memberName":"max","nodeType":"MemberAccess","src":"20720:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76928,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20671:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20681:18:160","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65485,"src":"20671:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":76937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20671:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76938,"nodeType":"ExpressionStatement","src":"20671:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76943,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76908,"src":"20793:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}],"id":76942,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20778:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20804:4:160","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":65445,"src":"20778:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76941,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76739,"src":"20758:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76948,"nodeType":"ExpressionStatement","src":"20758:53:160"},{"condition":{"id":76954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20857:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76950,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20865:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76949,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20858:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20873:20:160","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":66934,"src":"20858:35:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76959,"nodeType":"IfStatement","src":"20853:99:160","trueBody":{"id":76958,"nodeType":"Block","src":"20897:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76955,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73788,"src":"20918:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20918:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76957,"nodeType":"RevertStatement","src":"20911:30:160"}]}},{"assignments":[76961],"declarations":[{"constant":false,"id":76961,"mutability":"mutable","name":"slasher","nameLocation":"20970:7:160","nodeType":"VariableDeclaration","scope":77093,"src":"20962:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76960,"name":"address","nodeType":"ElementaryTypeName","src":"20962:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76967,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76963,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"20987:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76962,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20980:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20995:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"20980:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20962:42:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76969,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21026:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76968,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"21018:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$65100_$","typeString":"type(contract IEntity)"}},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$65100","typeString":"contract IEntity"}},"id":76971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21035:4:160","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":65093,"src":"21018:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76973,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76974,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21047:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"21045:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21018:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76980,"nodeType":"IfStatement","src":"21014:111:160","trueBody":{"id":76979,"nodeType":"Block","src":"21068:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76976,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"21089:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21089:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76978,"nodeType":"RevertStatement","src":"21082:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76982,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21152:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76981,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21139:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21161:12:160","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":66186,"src":"21139:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76990,"nodeType":"IfStatement","src":"21135:98:160","trueBody":{"id":76989,"nodeType":"Block","src":"21177:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76986,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"21198:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21198:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76988,"nodeType":"RevertStatement","src":"21191:31:160"}]}},{"assignments":[76992],"declarations":[{"constant":false,"id":76992,"mutability":"mutable","name":"vetoDuration","nameLocation":"21250:12:160","nodeType":"VariableDeclaration","scope":77093,"src":"21243:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76991,"name":"uint48","nodeType":"ElementaryTypeName","src":"21243:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76994,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21278:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76993,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21265:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21287:12:160","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":66421,"src":"21265:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21243:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76999,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76992,"src":"21315:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77000,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21330:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"21330:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21315:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77007,"nodeType":"IfStatement","src":"21311:92:160","trueBody":{"id":77006,"nodeType":"Block","src":"21349:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77003,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73797,"src":"21370:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21370:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77005,"nodeType":"RevertStatement","src":"21363:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77008,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76992,"src":"21417:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":77009,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21432:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"21432:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:39:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77012,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76879,"src":"21459:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77018,"nodeType":"IfStatement","src":"21413:119:160","trueBody":{"id":77017,"nodeType":"Block","src":"21479:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77014,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73800,"src":"21500:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21500:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77016,"nodeType":"RevertStatement","src":"21493:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77020,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21559:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77019,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21546:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21568:22:160","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":66451,"src":"21546:44:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":77023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":77024,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21595:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21597:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"21595:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21546:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77031,"nodeType":"IfStatement","src":"21542:139:160","trueBody":{"id":77030,"nodeType":"Block","src":"21624:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77027,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73818,"src":"21645:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21645:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77029,"nodeType":"RevertStatement","src":"21638:32:160"}]}},{"assignments":[77033],"declarations":[{"constant":false,"id":77033,"mutability":"mutable","name":"resolver","nameLocation":"21699:8:160","nodeType":"VariableDeclaration","scope":77093,"src":"21691:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77032,"name":"address","nodeType":"ElementaryTypeName","src":"21691:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77045,"initialValue":{"arguments":[{"expression":{"id":77038,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21741:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21743:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"21741:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":77042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21765:1:160","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":77041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21755:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77040,"name":"bytes","nodeType":"ElementaryTypeName","src":"21759:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21755:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77035,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21723:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77034,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21710:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21732:8:160","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":66473,"src":"21710:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) view external returns (address)"}},"id":77044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21691:77:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77046,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77033,"src":"21782:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21802:1:160","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":77048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21794:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77047,"name":"address","nodeType":"ElementaryTypeName","src":"21794:7:160","typeDescriptions":{}}},"id":77050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21794:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21782:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77067,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77033,"src":"21934:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77068,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21946:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21948:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21946:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21958:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83228,"src":"21946:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21934:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77076,"nodeType":"IfStatement","src":"21930:147:160","trueBody":{"id":77075,"nodeType":"Block","src":"21972:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77072,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73815,"src":"22048:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77074,"nodeType":"RevertStatement","src":"22041:25:160"}]}},"id":77077,"nodeType":"IfStatement","src":"21778:299:160","trueBody":{"id":77066,"nodeType":"Block","src":"21806:118:160","statements":[{"expression":{"arguments":[{"id":77056,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75086,"src":"21854:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":77057,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76834,"src":"21874:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21876:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21874:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21886:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83228,"src":"21874:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":77062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21910:1:160","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":77061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21900:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77060,"name":"bytes","nodeType":"ElementaryTypeName","src":"21904:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21900:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77053,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76961,"src":"21833:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77052,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21820:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21842:11:160","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":66517,"src":"21820:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":77064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77065,"nodeType":"ExpressionStatement","src":"21820:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77079,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76829,"src":"22170:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77078,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"22163:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":77080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":77081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22178:6:160","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":66910,"src":"22163:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22198:1:160","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":77084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22190:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77083,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:160","typeDescriptions":{}}},"id":77086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22190:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22163:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77092,"nodeType":"IfStatement","src":"22159:94:160","trueBody":{"id":77091,"nodeType":"Block","src":"22202:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77088,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73782,"src":"22223:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22223:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77090,"nodeType":"RevertStatement","src":"22216:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19696:14:160","parameters":{"id":76830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76829,"mutability":"mutable","name":"_vault","nameLocation":"19719:6:160","nodeType":"VariableDeclaration","scope":77094,"src":"19711:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76828,"name":"address","nodeType":"ElementaryTypeName","src":"19711:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19710:16:160"},"returnParameters":{"id":76831,"nodeType":"ParameterList","parameters":[],"src":"19735:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77141,"nodeType":"FunctionDefinition","src":"22265:482:160","nodes":[],"body":{"id":77140,"nodeType":"Block","src":"22344:403:160","nodes":[],"statements":[{"condition":{"id":77110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22358:72:160","subExpression":{"arguments":[{"id":77108,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22421:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77102,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"22369:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22369:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22380:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"22369:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22390:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":83220,"src":"22369:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77101,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"22359:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":77106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":77107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22412:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"22359:61:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":77109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77115,"nodeType":"IfStatement","src":"22354:135:160","trueBody":{"id":77114,"nodeType":"Block","src":"22432:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77111,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73830,"src":"22453:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77113,"nodeType":"RevertStatement","src":"22446:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77117,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22525:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77116,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22503:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22535:5:160","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":71927,"src":"22503:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77121,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77096,"src":"22546:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22503:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77127,"nodeType":"IfStatement","src":"22499:114:160","trueBody":{"id":77126,"nodeType":"Block","src":"22554:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77123,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73833,"src":"22575:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22575:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77125,"nodeType":"RevertStatement","src":"22568:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":77134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77129,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"22649:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77128,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22627:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22659:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":72044,"src":"22627:39:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":77133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22672:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22627:46:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77139,"nodeType":"IfStatement","src":"22623:118:160","trueBody":{"id":77138,"nodeType":"Block","src":"22675:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77135,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73806,"src":"22696:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22696:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77137,"nodeType":"RevertStatement","src":"22689:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22274:22:160","parameters":{"id":77099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77096,"mutability":"mutable","name":"_vault","nameLocation":"22305:6:160","nodeType":"VariableDeclaration","scope":77141,"src":"22297:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77095,"name":"address","nodeType":"ElementaryTypeName","src":"22297:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77098,"mutability":"mutable","name":"_rewards","nameLocation":"22321:8:160","nodeType":"VariableDeclaration","scope":77141,"src":"22313:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77097,"name":"address","nodeType":"ElementaryTypeName","src":"22313:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22296:34:160"},"returnParameters":{"id":77100,"nodeType":"ParameterList","parameters":[],"src":"22344:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77151,"nodeType":"ModifierDefinition","src":"22884:82:160","nodes":[],"body":{"id":77150,"nodeType":"Block","src":"22919:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77146,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77143,"src":"22945:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":77145,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77198,"src":"22929:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":77147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22929:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77148,"nodeType":"ExpressionStatement","src":"22929:19:160"},{"id":77149,"nodeType":"PlaceholderStatement","src":"22958:1:160"}]},"name":"validTimestamp","nameLocation":"22893:14:160","parameters":{"id":77144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77143,"mutability":"mutable","name":"ts","nameLocation":"22915:2:160","nodeType":"VariableDeclaration","scope":77151,"src":"22908:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77142,"name":"uint48","nodeType":"ElementaryTypeName","src":"22908:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22907:11:160"},"virtual":false,"visibility":"internal"},{"id":77198,"nodeType":"FunctionDefinition","src":"22972:408:160","nodes":[],"body":{"id":77197,"nodeType":"Block","src":"23022:358:160","nodes":[],"statements":[{"assignments":[77158],"declarations":[{"constant":false,"id":77158,"mutability":"mutable","name":"$","nameLocation":"23048:1:160","nodeType":"VariableDeclaration","scope":77197,"src":"23032:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77157,"nodeType":"UserDefinedTypeName","pathNode":{"id":77156,"name":"Storage","nameLocations":["23032:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23032:7:160"},"referencedDeclaration":73928,"src":"23032:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77161,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77159,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77211,"src":"23052:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23052:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23032:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77162,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23076:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77163,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23082:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23087:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23082:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23082:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23076:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77171,"nodeType":"IfStatement","src":"23072:80:160","trueBody":{"id":77170,"nodeType":"Block","src":"23100:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77167,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23121:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23121:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77169,"nodeType":"RevertStatement","src":"23114:27:160"}]}},{"assignments":[77173],"declarations":[{"constant":false,"id":77173,"mutability":"mutable","name":"gracePeriod","nameLocation":"23169:11:160","nodeType":"VariableDeclaration","scope":77197,"src":"23162:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77172,"name":"uint48","nodeType":"ElementaryTypeName","src":"23162:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77184,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77174,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23183:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23185:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23183:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77176,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23207:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23209:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23207:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23183:42:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":77181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23252:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23254:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23252:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23183:87:160","trueExpression":{"expression":{"id":77179,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77158,"src":"23228:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23230:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23228:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23162:108:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77185,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77153,"src":"23284:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77186,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77173,"src":"23289:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77188,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23304:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23309:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23304:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23304:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77196,"nodeType":"IfStatement","src":"23280:94:160","trueBody":{"id":77195,"nodeType":"Block","src":"23322:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77192,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23343:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23343:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77194,"nodeType":"RevertStatement","src":"23336:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22981:15:160","parameters":{"id":77154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77153,"mutability":"mutable","name":"ts","nameLocation":"23004:2:160","nodeType":"VariableDeclaration","scope":77198,"src":"22997:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77152,"name":"uint48","nodeType":"ElementaryTypeName","src":"22997:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22996:11:160"},"returnParameters":{"id":77155,"nodeType":"ParameterList","parameters":[],"src":"23022:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77211,"nodeType":"FunctionDefinition","src":"23386:201:160","nodes":[],"body":{"id":77210,"nodeType":"Block","src":"23456:131:160","nodes":[],"statements":[{"assignments":[77205],"declarations":[{"constant":false,"id":77205,"mutability":"mutable","name":"slot","nameLocation":"23474:4:160","nodeType":"VariableDeclaration","scope":77210,"src":"23466:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23466:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77208,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77206,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77223,"src":"23481:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":77207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23481:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23466:32:160"},{"AST":{"nativeSrc":"23534:47:160","nodeType":"YulBlock","src":"23534:47:160","statements":[{"nativeSrc":"23548:23:160","nodeType":"YulAssignment","src":"23548:23:160","value":{"name":"slot","nativeSrc":"23567:4:160","nodeType":"YulIdentifier","src":"23567:4:160"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23548:15:160","nodeType":"YulIdentifier","src":"23548:15:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77202,"isOffset":false,"isSlot":true,"src":"23548:15:160","suffix":"slot","valueSize":1},{"declaration":77205,"isOffset":false,"isSlot":false,"src":"23567:4:160","valueSize":1}],"flags":["memory-safe"],"id":77209,"nodeType":"InlineAssembly","src":"23509:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23395:8:160","parameters":{"id":77199,"nodeType":"ParameterList","parameters":[],"src":"23403:2:160"},"returnParameters":{"id":77203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77202,"mutability":"mutable","name":"middleware","nameLocation":"23444:10:160","nodeType":"VariableDeclaration","scope":77211,"src":"23428:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77201,"nodeType":"UserDefinedTypeName","pathNode":{"id":77200,"name":"Storage","nameLocations":["23428:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23428:7:160"},"referencedDeclaration":73928,"src":"23428:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23427:28:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77223,"nodeType":"FunctionDefinition","src":"23593:128:160","nodes":[],"body":{"id":77222,"nodeType":"Block","src":"23651:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":77218,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75080,"src":"23695:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77216,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23668:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23680:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23668:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23668:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23709:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23668:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77215,"id":77221,"nodeType":"Return","src":"23661:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23602:15:160","parameters":{"id":77212,"nodeType":"ParameterList","parameters":[],"src":"23617:2:160"},"returnParameters":{"id":77215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77223,"src":"23642:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23642:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23641:9:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77247,"nodeType":"FunctionDefinition","src":"23727:200:160","nodes":[],"body":{"id":77246,"nodeType":"Block","src":"23795:132:160","nodes":[],"statements":[{"assignments":[77231],"declarations":[{"constant":false,"id":77231,"mutability":"mutable","name":"slot","nameLocation":"23813:4:160","nodeType":"VariableDeclaration","scope":77246,"src":"23805:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23805:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77236,"initialValue":{"arguments":[{"id":77234,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77225,"src":"23847:9:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":77232,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"23820:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":77233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23835:11:160","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"23820:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23820:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23805:52:160"},{"expression":{"id":77244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":77240,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75080,"src":"23894:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77237,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23867:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23879:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23867:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23867:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23908:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23867:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77243,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77231,"src":"23916:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23867:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77245,"nodeType":"ExpressionStatement","src":"23867:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":77228,"kind":"modifierInvocation","modifierName":{"id":77227,"name":"onlyOwner","nameLocations":["23785:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"23785:9:160"},"nodeType":"ModifierInvocation","src":"23785:9:160"}],"name":"_setStorageSlot","nameLocation":"23736:15:160","parameters":{"id":77226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77225,"mutability":"mutable","name":"namespace","nameLocation":"23766:9:160","nodeType":"VariableDeclaration","scope":77247,"src":"23752:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":77224,"name":"string","nodeType":"ElementaryTypeName","src":"23752:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23751:25:160"},"returnParameters":{"id":77229,"nodeType":"ParameterList","parameters":[],"src":"23795:0:160"},"scope":77278,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77257,"nodeType":"ModifierDefinition","src":"23933:81:160","nodes":[],"body":{"id":77256,"nodeType":"Block","src":"23968:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77252,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77249,"src":"23990:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77251,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77277,"src":"23978:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23978:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77254,"nodeType":"ExpressionStatement","src":"23978:18:160"},{"id":77255,"nodeType":"PlaceholderStatement","src":"24006:1:160"}]},"name":"vaultOwner","nameLocation":"23942:10:160","parameters":{"id":77250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77249,"mutability":"mutable","name":"vault","nameLocation":"23961:5:160","nodeType":"VariableDeclaration","scope":77257,"src":"23953:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77248,"name":"address","nodeType":"ElementaryTypeName","src":"23953:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23952:15:160"},"virtual":false,"visibility":"internal"},{"id":77277,"nodeType":"FunctionDefinition","src":"24020:181:160","nodes":[],"body":{"id":77276,"nodeType":"Block","src":"24070:131:160","nodes":[],"statements":[{"condition":{"id":77270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24084:62:160","subExpression":{"arguments":[{"id":77266,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75083,"src":"24115:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77267,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24135:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24139:6:160","memberName":"sender","nodeType":"MemberAccess","src":"24135:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":77263,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77259,"src":"24100:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77262,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"24085:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$44539_$","typeString":"type(contract IAccessControl)"}},"id":77264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$44539","typeString":"contract IAccessControl"}},"id":77265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24107:7:160","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":44506,"src":"24085:29:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":77269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:61:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77275,"nodeType":"IfStatement","src":"24080:115:160","trueBody":{"id":77274,"nodeType":"Block","src":"24148:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77271,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"24169:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24169:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77273,"nodeType":"RevertStatement","src":"24162:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24029:11:160","parameters":{"id":77260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77259,"mutability":"mutable","name":"vault","nameLocation":"24049:5:160","nodeType":"VariableDeclaration","scope":77277,"src":"24041:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77258,"name":"address","nodeType":"ElementaryTypeName","src":"24041:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24040:15:160"},"returnParameters":{"id":77261,"nodeType":"ParameterList","parameters":[],"src":"24070:0:160"},"scope":77278,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75055,"name":"IMiddleware","nameLocations":["2399:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"2399:11:160"},"id":75056,"nodeType":"InheritanceSpecifier","src":"2399:11:160"},{"baseName":{"id":75057,"name":"OwnableUpgradeable","nameLocations":["2412:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"2412:18:160"},"id":75058,"nodeType":"InheritanceSpecifier","src":"2412:18:160"},{"baseName":{"id":75059,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2432:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"2432:35:160"},"id":75060,"nodeType":"InheritanceSpecifier","src":"2432:35:160"},{"baseName":{"id":75061,"name":"UUPSUpgradeable","nameLocations":["2469:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"2469:15:160"},"id":75062,"nodeType":"InheritanceSpecifier","src":"2469:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77278,46243,44833,43943,42322,43484,42590,74131],"name":"Middleware","nameLocation":"2385:10:160","scope":77279,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,53880,55791,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860,84112,84115,84118],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":160} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"_commitment","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashes","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"activeOperators","type":"address[]","internalType":"address[]"},{"name":"stakes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"stake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"maxValidators","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerVault","inputs":[{"name":"_vault","type":"address","internalType":"address"},{"name":"_rewards","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"data","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"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":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyAdded","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnumerableMapNonexistentKey","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotEnabled","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","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":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020613d365f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6f90816100c78239608051818181611c690152611d380152f35b6001600160401b0319166001600160401b039081175f516020613d365f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;7983:34:30;7979:146;;-1:-1:-1;2376:21827:160;;;;;;;;1052:13:60;2376:21827:160;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;8085:29:30;;2376:21827:160;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;2376:21827:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2376:21827:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7849:17;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;2357:1:29;2376:21827:160;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;2376:21827:160;;;;;;;;;;;;;;;9103:10;9074:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9074:20;9103:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;13809:372;2376:21827;;:::i;:::-;;;:::i;:::-;22945:2;;;;:::i;:::-;13809:372;:::i;:::-;2376:21827;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7536:21;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7422:30:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7422:30;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;7641:21;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7296:34:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;7296:34;2376:21827;;;;;;;;;;;;;;;;;;;;;;7747:22;-1:-1:-1;;;;;;;;;;;2376:21827:160;7747:22;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;:::i;:::-;;;;;;7981:20;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;16223:38;;2376:21827;-1:-1:-1;;;;;2376:21827:160;16209:10;:52;16205:108;;2376:21827;;;;16328:9;16339:18;;;;;;2376:21827;;;16359:3;16411:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;8806:28:86;;16441:17:160;;-1:-1:-1;;;;;16468:11:160;2376:21827;16468:11;:::i;:::-;2376:21827;8806:28:86;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;16440:40:160;16436:106;;2376:21827;;-1:-1:-1;;;;;16576:11:160;;;:::i;:::-;2376:21827;;;;;;;;;;16569:29;;;;;;;;;2376:21827;16569:29;;;;;;;16359:3;2376:21827;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16556:83;;16613:11;2376:21827;;16556:83;;2376:21827;;;;;;;;;;;:::i;:::-;16556:83;;-1:-1:-1;;;;;2376:21827:160;16556:83;;;;;;;2376:21827;16556:83;;;16359:3;;2376:21827;16328:9;;16556:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;16569:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;16436:106;-1:-1:-1;;;16507:20:160;;2376:21827;15830:20;16507;16205:108;-1:-1:-1;;;16284:18:160;;2376:21827;8477:18;16284;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;4301:16:30;2376:21827:160;;4724:16:30;;:34;;;;2376:21827:160;4803:1:30;4788:16;:50;;;;2376:21827:160;4853:13:30;:30;;;;2376:21827:160;4849:91:30;;;2376:21827:160;4803:1:30;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;3446:19;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;3501:29;2376:21827;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3564:27;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3622:24;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3676:23;2376:21827;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;3736:30;2376:21827;;;;;;;;;4803:1:30;3709:24:160;;2376:21827;;;;;;;;;;3776:27;;;2376:21827;3806:33;2376:21827;;;3877:31;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;;;;3849:25:160;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;3942:27;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;4017:18;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;4002:12;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4068:4;3564:27;2376:21827;;4045:12;;2376:21827;4130:19;2376:21827;4114:13;;;2376:21827;4171:14;2376:21827;;;;;;;;4160:8;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;4210:17;2376:21827;;;;;;;;4196:11;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;3033:1;;:::i;:::-;;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;3033:1;2376:21827;;;;;;;;3033:1;;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;4255:33;;:::i;:::-;2376:21827;4238:69;;;;;2376:21827;;;;;;;;;;;;;4238:69;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;4343:35:160;;:::i;:::-;2376:21827;4317:91;;;;;2376:21827;;;3446:19;2376:21827;;;;;;;;;4317:91;;4068:4;2376:21827;4317:91;;2376:21827;4317:91;;;;;;;;2376:21827;;;;;;;;17713:17;2376:21827;;;;;;;;;4803:1:30;2376:21827:160;;;;;;;;;;;18102:44;;2376:21827;;;;;3564:27;2376:21827;;18377:48;2376:21827;;;;;;;;18665:45;2376:21827;;3736:30;2376:21827;;;;18840:21;;2376:21827;;;;;;19112:28;;2376:21827;;;19219:44;;;;:::i;:::-;2376:21827;19219:71;2376:21827;;3849:25;2376:21827;;19561:32;2376:21827;;5064:101:30;;2376:21827:160;;;5064:101:30;2376:21827:160;5140:14:30;2376:21827:160;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;4803:1:30;2376:21827:160;;5140:14:30;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;-1:-1:-1;;;2376:21827:160;;3033:1;2376:21827;;3446:19;2376:21827;;;-1:-1:-1;;;2376:21827:160;;;;;4317:91;;;;;:::i;:::-;2376:21827;;4317:91;;;;2376:21827;;;;4317:91;2376:21827;;;;;;;;;4238:69;;;;;:::i;:::-;2376:21827;;4238:69;;;;2376:21827;;;;;;;;;;;;4977:67:30;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;2376:21827:160;6496:23:30;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;2376:21827:160;;;;;;;;;;;;;;7164:36;-1:-1:-1;;;;;;;;;;;2376:21827:160;7164:36;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;9356:11;;;;3505:23:170;23973:47:85;2376:21827:160;9356:11;23973:47:85;:::i;:::-;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3505:23;-1:-1:-1;2376:21827:160;;;9401:17;;2376:21827;-1:-1:-1;9401:76:160;;;;2376:21827;9397:144;;;;21805:50:85;;;;:::i;:::-;;2376:21827:160;;9397:144;-1:-1:-1;;;9500:30:160;;2376:21827;9500:30;;9401:76;2376:21827;837:15:87;;;9441:36:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;9441:36;;:::i;:::-;2376:21827;;;9422:55;9401:76;;;;2376:21827;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;11781:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11756:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11756:17;11781:5;:::i;2376:21827::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8425:29;;2376:21827;;8425:29;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8411:10;:43;8407:99;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2376:21827:160;10308:8;;;;2376:21827;;;;;;;;;10294:10;:22;10290:71;;2376:21827;;;10396:12;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;10375:33;10371:90;;10471:30;;;;;;2376:21827;10516:13;;10670:8;2376:21827;10906:13;10670:8;;;10906:13;;2376:21827;;;;10511:677;10568:3;10535:24;;2376:21827;;10531:35;;;;;10623:27;;;;:::i;:::-;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;-1:-1:-1;2376:21827:160;;;;5197:14:86;;2376:21827:160;;;;;;5197:26:86;10665:99:160;;2376:21827;;;;10884:58;2376:21827;;;;3710:23:170;2376:21827:160;23973:47:85;2376:21827:160;;;;;;;;;23973:47:85;;:::i;3710:23:170:-;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;-1:-1:-1;2376:21827:160;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10884:58;;;;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;:::i;:::-;10884:58;2376:21827;;10884:58;;;;;;:::i;:::-;2376:21827;;;;11041:14;;;2376:21827;;11041:14;;2376:21827;;11041:14;;-1:-1:-1;;;;;2376:21827:160;;;;;10956:106;;;;;2376:21827;;;;;;;;;;;;;;;;;;;10956:106;;2376:21827;10956:106;;2376:21827;;;;;;;;;;;;;;;;;;;:::i;:::-;10956:106;;;;;;;;;;;;;10568:3;2376:21827;;;11097:80;2376:21827;;;;;;;;;;;;;;;11129:47;;;2376:21827;;;;;;11129:47;;;;;;:::i;:::-;11097:80;:::i;:::-;10568:3;2376:21827;10516:13;;;10956:106;;;;;:::i;:::-;2376:21827;;10956:106;;;;;2376:21827;;;;;;;;;10956:106;2376:21827;;;10531:35;;11215:93;10531:35;;;2376:21827;;;;;11247:60;;;;2376:21827;;;;;;;;;;;;11247:60;;;11129:47;11247:60;;:::i;11215:93::-;2376:21827;;;;;11205:104;2376:21827;;;;;;10371:90;-1:-1:-1;;;10431:19:160;;2376:21827;20113:19;10431;10290:71;-1:-1:-1;;;10339:11:160;;2376:21827;9799:11;10339;2376:21827;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;9768:8;;;2376:21827;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;9754:10;:22;;;9750:71;;9844:12;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9835:21;;9831:78;;9943:27;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;9919:101;;;;;;2376:21827;;;;;;;;;;;;9919:101;;2376:21827;9919:101;;2376:21827;;;;;;;;;;;;;;;9919:101;;;;;;;;2376:21827;;;;;;10048:30;;;;2376:21827;;;;;;;;10048:30;;;2376:21827;10048:30;;:::i;:::-;2376:21827;10038:41;;2376:21827;;;;;;9919:101;;;;;;:::i;:::-;2376:21827;;9919:101;;;;2376:21827;;;;;;;;;9831:78;-1:-1:-1;;;9879:19:160;;2376:21827;20113:19;9879;9750:71;-1:-1:-1;;;9799:11:160;;2376:21827;9799:11;;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;2376:21827:160;;3975:40:29;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;8157:30;;2376:21827;;8157:30;;2376:21827;-1:-1:-1;;;;;2376:21827:160;8143:10;:44;8139:101;;2376:21827;;-1:-1:-1;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;8139:101;-1:-1:-1;;;8210:19:160;;2376:21827;15350:19;8210;2376:21827;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;6429:44:30;;;;;2376:21827:160;6425:105:30;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6959:1:30;;-1:-1:-1;;;;;2376:21827:160;6891:76:30;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2376:21827:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;2376:21827:160;;;;;;;1800:178:73;2376:21827:160;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;;;;-1:-1:-1;;;;2376:21827:160;-1:-1:-1;;;2376:21827:160;;;;;;;6591:4:30;5155:33:160;;2376:21827;;;6591:4:30;5119:33:160;;2376:21827;;;;;;;;;;4573:1;5237:36;;2376:21827;4573:1;5198:36;;2376:21827;5364:63;5320:34;;;-1:-1:-1;;;;;2376:21827:160;;;;5283:34;;5320;5283;;2376:21827;;;;;;;;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;;-1:-1:-1;;;2376:21827:160;;;;;;5364:63;5461:21;;;;2376:21827;5437:21;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;5516:21;;;2376:21827;5492:21;;;2376:21827;5572:22;;;;2376:21827;5547:22;;;2376:21827;5624:17;;;;2376:21827;5604:17;;;2376:21827;;;;;;;;;;;5674:20;5651;;;;5674;;2376:21827;;;;;;-1:-1:-1;;5729:20:160;5850;;;;5710:13;5729:20;;;;5710:13;5760:3;2376:21827;;5725:33;;;;;5810:26;5850:36;5810:26;6591:4:30;5810:26:160;;;:::i;:::-;5850:36;;;:::i;:::-;;2376:21827;5710:13;;5725:33;-1:-1:-1;5931:17:160;6046;;;;5725:33;5931:17;5725:33;5959:3;2376:21827;;5927:30;;;;;6009:23;6046:33;6009:23;6591:4:30;6009:23:160;;;:::i;:::-;6046:33;;;:::i;:::-;;2376:21827;5912:13;;5927:30;;-1:-1:-1;;;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;;;;;;2376:21827:160;6654:20:30;2376:21827:160;;;4573:1;2376:21827;;6654:20:30;2376:21827:160;;;;;;-1:-1:-1;;;;;;2376:21827:160;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2376:21827:160;;6425:105:30;-1:-1:-1;;;6496:23:30;;2376:21827:160;;6496:23:30;6429:44;4573:1:160;2376:21827;;-1:-1:-1;;;;;2376:21827:160;6448:25:30;;6429:44;;;2376:21827:160;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;2376:21827:160;4815:4:60;4807:23;4803:145;;2376:21827:160;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;4803:145:60;-1:-1:-1;;;4908:29:60;;2376:21827:160;;4908:29:60;2376:21827:160;-1:-1:-1;2376:21827:160;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;2376:21827:160;4392:4:60;4384:23;;;:120;;;;2376:21827:160;4367:251:60;;;2303:62:29;;:::i;:::-;2376:21827:160;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;5865:52:60;;;;;;;2376:21827:160;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;2376:21827:160;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;;2407:36:53;2376:21827:160;;2407:36:53;2376:21827:160;;2458:15:53;:11;;4107:55:66;4065:25;;;;;;;;2376:21827:160;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;2376:21827:160:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;;6159:70;;2376:21827:160;;6159:70:53;-1:-1:-1;;;6199:19:53;;2376:21827:160;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;2376:21827:160;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;2376:21827:160;;;6026:34:60;;5865:52;;;;2376:21827:160;5865:52:60;;2376:21827:160;5865:52:60;;;;;;2376:21827:160;5865:52:60;;;:::i;:::-;;;2376:21827:160;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;2376:21827:160;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;4462:42:60;;;-1:-1:-1;4384:120:60;;;2376:21827:160;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;9200:10;9172:20;-1:-1:-1;;;;;;;;;;;2376:21827:160;9172:20;9200:10;;;:::i;2376:21827::-;;;;;;;-1:-1:-1;;2376:21827:160;;;;11664:5;2376:21827;;:::i;:::-;23990:5;;;:::i;:::-;11638:17;-1:-1:-1;;;;;;;;;;;2376:21827:160;11638:17;11664:5;:::i;2376:21827::-;;;;;;;;;;;;;;;7032:33;-1:-1:-1;;;;;;;;;;;2376:21827:160;7032:33;2376:21827;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;8720:28;;;2376:21827;;;-1:-1:-1;;;8710:60:160;;8759:10;2376:21827;8710:60;;2376:21827;;;;;;8710:60;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8710:60;;;;;;;;;;;2376:21827;8709:61;;8705:121;;8854:24;;;2376:21827;;;-1:-1:-1;;;8840:76:160;;8759:10;2376:21827;8840:76;;2376:21827;8910:4;8710:60;2376:21827;;;;;;;;8840:76;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;8840:76;;;;;;;;;;;2376:21827;8839:77;;8835:137;;2166:50:170;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;8759:10;8982:11;8759:10;8982:11;;2166:50:170;:::i;:::-;2165:51;2161:103;;2376:21827:160;;2161:103:170;-1:-1:-1;;;2239:14:170;;2376:21827:160;;2239:14:170;8835:137:160;-1:-1:-1;;;8939:22:160;;2376:21827;8939:22;;8840:76;;;;2376:21827;8840:76;2376:21827;8840:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2376:21827;;;;;;;;;8705:121;-1:-1:-1;;;8793:22:160;;2376:21827;8793:22;;8710:60;;;;2376:21827;8710:60;2376:21827;8710:60;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;;;;11943:8;;;;3505:23:170;23973:47:85;2376:21827:160;11943:8;23973:47:85;:::i;3505:23:170:-;-1:-1:-1;2376:21827:160;;;11982:17;;2376:21827;-1:-1:-1;11982:73:160;;;;2376:21827;11978:138;;;;21805:50:85;;;;:::i;11978:138:160:-;-1:-1:-1;;;12078:27:160;;2376:21827;12078:27;;11982:73;2376:21827;837:15:87;;;12022:33:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;;;12022:33;;:::i;:::-;2376:21827;;;12003:52;11982:73;;;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2376:21827:160;15297:30;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;15283:10;:44;15279:101;;15395:9;2376:21827;;15390:726;15423:3;2376:21827;;;;;15406:15;;;;;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;8806:28:86;-1:-1:-1;;;;;15520:18:160;2376:21827;;;15520:18;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15498:41:160;15494:110;;15623:9;15663:3;15638:16;;;;2376:21827;;;15638:16;:::i;:::-;15634:27;;;;;;;15722:19;15638:16;15722;15638;;;2376:21827;;;15722:16;:::i;:::-;:19;;:::i;:::-;8806:28:86;-1:-1:-1;;;;;15783:15:160;;;:::i;:::-;2376:21827;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;5197:26:86;;;5101:129;8806:28;15764:35:160;15760:109;;2376:21827;;;;;;-1:-1:-1;;;;;15912:15:160;2376:21827;15912:15;:::i;:::-;2376:21827;;;;;;;;;;15905:33;;;;;;;;;;;;;15663:3;16012:12;2376:21827;16012:12;;2376:21827;;16026:18;2376:21827;;;16026:18;:::i;:::-;16064:12;;;2376:21827;;;;;;;;16064:12;;;;2376:21827;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;15956:135;;2376:21827;15956:135;;2376:21827;;;;;;;;;;;16046:16;2376:21827;;;;;;16064:12;;;2376:21827;;;;;;;;;;;;;;;;:::i;:::-;15956:135;;-1:-1:-1;;;;;2376:21827:160;15956:135;;;;;;;2376:21827;15956:135;;;15663:3;;2376:21827;15623:9;;15956:135;;;;;;;;;;;;;:::i;:::-;;;;;15905:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15634:27;;;2376:21827;15634:27;;2376:21827;15395:9;;;15494:110;-1:-1:-1;;;15566:23:160;;2376:21827;15566:23;;15406:15;;2376:21827;;15279:101;-1:-1:-1;;;15350:19:160;;2376:21827;15350:19;;2376:21827;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;23990:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2376:21827:160;19801:11;;;2376:21827;;;-1:-1:-1;;;19791:53:160;;-1:-1:-1;;;;;2376:21827:160;;;;19791:53;;2376:21827;;;;;;;;;;;;;;;19791:53;;;;;;;2376:21827;19791:53;;;2376:21827;19790:54;;19786:109;;2376:21827;;-1:-1:-1;;;19909:35:160;;2376:21827;;;;19909:35;;;;;;;;2376:21827;19909:35;;;2376:21827;19948:25;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;19909:64;19905:128;;2376:21827;;-1:-1:-1;;;20047:27:160;;2376:21827;;;;20047:27;;;;;;;;2376:21827;20047:27;;;2376:21827;-1:-1:-1;20078:12:160;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;20047:43;20043:100;;2376:21827;;-1:-1:-1;;;20209:30:160;;2376:21827;;;;20209:30;;;;;;;;2376:21827;20209:30;;;2376:21827;;;;;;;;;;;20253:44;;;20249:107;;2376:21827;;-1:-1:-1;;;20404:39:160;;2376:21827;;;;20404:39;;;;;;;;2376:21827;20404:39;;;2376:21827;20403:40;;20399:103;;2376:21827;;-1:-1:-1;;;20554:26:160;;2376:21827;;;;20554:26;;;;;;;;2376:21827;20554:26;;;2376:21827;-1:-1:-1;2376:21827:160;20621:12;;;2376:21827;;;;-1:-1:-1;;;20595:39:160;;;;;2376:21827;20621:12;;-1:-1:-1;;;;;2376:21827:160;;;;;;;20595:39;;;;;;;2376:21827;20595:39;;;2376:21827;-1:-1:-1;20595:60:160;20591:158;;2376:21827;;;;;;;;;;;;;20778:32;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;17543:82;;2376:21827;;-1:-1:-1;;;20858:37:160;;2376:21827;;;;20858:37;;;;;;;;;;;;2376:21827;20857:38;;20853:99;;2376:21827;;-1:-1:-1;;;20980:24:160;;2376:21827;;;;20980:24;;;;;;;;;;;;2376:21827;-1:-1:-1;2376:21827:160;;-1:-1:-1;;;21018:23:160;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;21018:23;;;;;;;;;;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;21018:48;21014:111;;2376:21827;;-1:-1:-1;;;21139:36:160;;2376:21827;;;;21139:36;;;;;;;;;;;;2376:21827;21135:98;;;2376:21827;;-1:-1:-1;;;21265:36:160;;2376:21827;;;;21265:36;;;;;;;;;;;;2376:21827;;;;;;;;;;;21315:32;21311:92;;21417:39;2376:21827;21432:24;;;;;2376:21827;;21417:39;;:::i;:::-;2376:21827;21417:60;21413:119;;2376:21827;;-1:-1:-1;;;21546:46:160;;2376:21827;;;;21546:46;;;;;;;;;;;;2376:21827;21595:27;;;;2376:21827;-1:-1:-1;21542:139:160;;2376:21827;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;;;;;;;;;;;;;;;;;21710:58;;2376:21827;21710:58;;2376:21827;;;;;;;;;;;:::i;:::-;21710:58;;;;;;;;;;;;;;2376:21827;-1:-1:-1;;;;;;2376:21827:160;21782:22;;;-1:-1:-1;21874:24:160;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;:::i;:::-;;;;;;;;;21820:93;;;;;2376:21827;;;;;;;;;;;;;;;;;21820:93;;;2376:21827;21820:93;;2376:21827;;;;;;;;;;;;;;;:::i;:::-;21820:93;;;;;;;;;;;;;21778:299;;;;2376:21827;;-1:-1:-1;;;22163:23:160;;;2376:21827;;;22163:23;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22163:37;22159:94;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;;;;;;22369:41;;;2376:21827;;;;;;;;;;;22359:71;;;2376:21827;22359:71;;2376:21827;22359:71;;;;;;;;;;;21778:299;22358:72;;22354:135;;2376:21827;;-1:-1:-1;;;22503:39:160;;;2376:21827;;;22503:39;;;;;;;;;;;;21778:299;-1:-1:-1;;;;;;2376:21827:160;22503:49;22499:114;;2376:21827;;-1:-1:-1;;;22627:41:160;;;2376:21827;;;22627:41;;;;;;;;;-1:-1:-1;;;;;22627:41:160;21595:27;22627:41;;;;;21778:299;2376:21827;;;22627:46;22623:118;;11500:17;2166:50:170;837:15:87;;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;11500:17:160;2166:50:170;:::i;22623:118:160:-;-1:-1:-1;;;22696:34:160;;2376:21827;22696:34;;22627:41;;;;;;-1:-1:-1;22627:41:160;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2376:21827;;;;;;;;;22499:114;-1:-1:-1;;;22575:27:160;;2376:21827;22575:27;;22503:39;;;;;;;;;;;;;;:::i;:::-;;;;;2376:21827;;;;;;;;;22354:135;-1:-1:-1;;;22453:25:160;;2376:21827;22453:25;;22359:71;;;;;;;;;;;;;;:::i;:::-;;;;22159:94;-1:-1:-1;;;22223:19:160;;2376:21827;22223:19;;22163:23;;;;;;;;;;;;;;:::i;:::-;;;;21820:93;;;;;:::i;:::-;2376:21827;;21820:93;;;;21778:299;21946:24;;;;2376:21827;-1:-1:-1;;;;;2376:21827:160;21934:36;;-1:-1:-1;21778:299:160;;-1:-1:-1;21930:147:160;-1:-1:-1;;;22048:18:160;;2376:21827;22048:18;;21710:58;;;;;;;;;;;;;;:::i;:::-;;;;21542:139;-1:-1:-1;;;21645:25:160;;2376:21827;21645:25;;21546:46;;;2376:21827;21546:46;;2376:21827;21546:46;;;;;;2376:21827;21546:46;;;:::i;:::-;;;2376:21827;;;;;21546:46;;;2376:21827;-1:-1:-1;2376:21827:160;;21546:46;;;-1:-1:-1;21546:46:160;;21413:119;-1:-1:-1;;;21500:21:160;;2376:21827;21500:21;;21311:92;-1:-1:-1;;;21370:22:160;;2376:21827;21370:22;;21265:36;;;;2376:21827;21265:36;2376:21827;21265:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21135:98;-1:-1:-1;;;21198:24:160;;2376:21827;21198:24;;21139:36;;;;2376:21827;21139:36;2376:21827;21139:36;;;;;;;:::i;:::-;;;;21014:111;-1:-1:-1;;;21089:25:160;;2376:21827;21089:25;;21018:23;-1:-1:-1;;;;;21018:23:160;;;;;;2376:21827;21018:23;2376:21827;21018:23;;;;;;;:::i;:::-;;;;;;20980:24;;;;2376:21827;20980:24;2376:21827;20980:24;;;;;;;:::i;:::-;;;;20853:99;-1:-1:-1;;;20918:23:160;;2376:21827;20918:23;;20858:37;;;;2376:21827;20858:37;2376:21827;20858:37;;;;;;;:::i;:::-;;;;17543:82;-1:-1:-1;;;;;;17588:26:160;;2376:21827;17588:26;;20778:32;;;;2376:21827;20778:32;2376:21827;20778:32;;;;;;;:::i;:::-;;;;20591:158;20671:67;;;;;2376:21827;;-1:-1:-1;;;20671:67:160;;2376:21827;;20671:67;;2376:21827;;;-1:-1:-1;;2376:21827:160;;;;;20671:67;2376:21827;;20671:67;;;;;;;;;20591:158;;;;20671:67;;;;;2376:21827;20671:67;;:::i;:::-;2376:21827;;;20671:67;;;2376:21827;;;;;;;;;20595:39;;;2376:21827;20595:39;;2376:21827;20595:39;;;;;;2376:21827;20595:39;;;:::i;:::-;;;2376:21827;;;;;20595:39;;;;;;-1:-1:-1;20595:39:160;;20554:26;;;;2376:21827;20554:26;2376:21827;20554:26;;;;;;;:::i;:::-;;;;20399:103;20466:25;;;2376:21827;20466:25;2376:21827;;20466:25;20404:39;;;;2376:21827;20404:39;2376:21827;20404:39;;;;;;;:::i;:::-;;;;20249:107;20320:25;;;2376:21827;20320:25;2376:21827;;20320:25;20209:30;;;;2376:21827;20209:30;2376:21827;20209:30;;;;;;;:::i;:::-;;;;20043:100;20113:19;;;2376:21827;20113:19;2376:21827;;20113:19;20047:27;;;;2376:21827;20047:27;2376:21827;20047:27;;;;;;;:::i;:::-;;;;19905:128;19996:26;;;2376:21827;19996:26;2376:21827;;19996:26;19909:35;;;;2376:21827;19909:35;2376:21827;19909:35;;;;;;;:::i;:::-;;;;19786:109;19867:17;;;2376:21827;19867:17;2376:21827;;19867:17;19791:53;;;;2376:21827;19791:53;2376:21827;19791:53;;;;;;;:::i;:::-;;;;2376:21827;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;-1:-1:-1;2376:21827:160;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;-1:-1:-1;;;;;2376:21827:160;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;-1:-1:-1;;2376:21827:160;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;3033:1;2376:21827;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12161:1642::-;;12278:17;;2376:21827;;12407:29;;;:::i;:::-;2376:21827;;;12451:39;;;;12447:92;;12294:1;20638:17;;2376:21827;;;;;12627:368;12647:5;;;;;;13062:26;;;;12701:1;20638:17;;;2376:21827;;;;;;;;13118:25;;;;:::i;:::-;2376:21827;13158:25;13153:188;13213:3;2376:21827;;13185:26;;;;;13236:9;;;;;:::i;:::-;2376:21827;13236:22;13232:66;;12701:1;2376:21827;;;;;;;12701:1;13311:19;13213:3;2376:21827;13158:25;;;13232:66;13278:5;;;;;;;;;13153:188;12701:1;13355:18;;13351:316;;13153:188;13677:87;;;;;12161:1642;:::o;13351:316::-;2376:21827;;13518:20;;;2376:21827;;;;;;;;;;13518:20;;;;;;;:::i;:::-;2376:21827;13508:31;;2376:21827;;;;;13624:27;2376:21827;;13624:27;;:::i;:::-;-1:-1:-1;;2376:21827:160;;;;;;;13571:85;;-1:-1:-1;;;;;2376:21827:160;13608:48;;;;:::i;:::-;2376:21827;;;13571:85;;:::i;:::-;2376:21827;13351:316;;;;;2376:21827;;;;12294:1;2376:21827;;;;;12294:1;2376:21827;13185:26;;;;;;;;;;;;12654:3;12678:13;;;;;;;;;12294:1;12673:312;12708:3;2376:21827;;;;;-1:-1:-1;;2376:21827:160;;;;;;12693:13;;;;;12735:9;;;;:::i;:::-;2376:21827;12701:1;2376:21827;;;;;;;;12747:13;;;12701:1;12747:13;;;;;;:::i;:::-;2376:21827;-1:-1:-1;12731:240:160;;12708:3;;;;2376:21827;12678:13;;;12731:240;12861:91;2376:21827;12814:13;12784:55;12814:13;;;;;:::i;:::-;2376:21827;12829:9;;;;;:::i;:::-;2376:21827;12784:55;;;;:::i;:::-;2376:21827;12784:55;:::i;:::-;2376:21827;;;;;;12909:22;;;;:::i;:::-;2376:21827;;;12861:91;2376:21827;;;;;12933:18;;;;:::i;:::-;2376:21827;;;12861:91;;:::i;:::-;2376:21827;12731:240;;;;;12693:13;;;;;12701:1;12693:13;;;;;;2376:21827;12632:13;;;12447:92;12506:22;;;;;;;:::o;2376:21827::-;;;;12294:1;2376:21827;;12294:1;2376:21827;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;;-1:-1:-1;2376:21827:160;;;;;;;;;;;:::i;:::-;:::o;14224:940::-;;22945:2;;;:::i;:::-;14487:11;-1:-1:-1;;;;;;;;;;;2376:21827:160;14487:11;2376:21827;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2376:21827:160;;;:::i;:::-;;;;;;;-1:-1:-1;14612:9:160;-1:-1:-1;14607:416:160;14623:24;;;;;;15033:125;;;;;;;;;14376:23;14224:940;:::o;14649:3::-;3215:12:170;;;;3268:14;14768:35:160;3215:12:170;;;;;:::i;:::-;3268:14;;;2376:21827:160;;;;;;1227:2:170;2376:21827:160;;;1249:2:170;2376:21827:160;941:319:170;;3268:14;14768:35:160;;;:::i;:::-;14767:36;14763:83;;14860:39;14935:47;14860:39;;;;;:::i;:::-;-1:-1:-1;;;;;2376:21827:160;;;;14935:47;:::i;:::-;14913:69;;;;:::i;:::-;2376:21827;15011:1;2376:21827;;;;;;;15011:1;14996:16;14649:3;14612:9;2376:21827;14612:9;;;;;14763:83;14823:8;;15011:1;14823:8;;;13809:372;;14031:43;2376:21827;3505:23:170;23973:47:85;13977:20:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;13977:20;2376:21827;;;;;;;23973:47:85;;:::i;14031:43:160:-;14030:44;14026:83;;14127:47;;;:::i;:::-;13809:372;:::o;14026:83::-;14090:8;;-1:-1:-1;14090:8:160;:::o;3405:215:29:-;-1:-1:-1;;;;;2376:21827:160;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;2376:21827:160;;-1:-1:-1;;;;;;2376:21827:160;;;;;;;-1:-1:-1;;;;;2376:21827:160;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;2376:21827:160;;3509:1:29;3534:31;24020:181:160;2376:21827;;-1:-1:-1;;;24085:61:160;;2979:4;24085:61;;;2376:21827;24135:10;2979:4;;;2376:21827;;2979:4;;2376:21827;;24085:61;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;24085:61;;;;;;;2979:4;24085:61;;;24020:181;24084:62;;24080:115;;24020:181::o;24080:115::-;24169:15;;;2979:4;24169:15;24085:61;2979:4;24169:15;24085:61;;;;2979:4;24085:61;2979:4;24085:61;;;;;;;:::i;:::-;;;;2376:21827;;;;;;;;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;2626:351:170:-;2376:21827:160;;2779:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2779:23:170:-;2376:21827:160;;;;;2817:16:170;;;:37;;;;;2626:351;2813:87;;;2910:60;837:15:87;-1:-1:-1;;;819:34:87;837:15;819:34;:::i;:::-;1716:2:170;2376:21827:160;;1667:52:170;1740:2;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2910:60;:::i;:::-;;2626:351::o;2813:87::-;2877:12;;;-1:-1:-1;2877:12:170;;-1:-1:-1;2877:12:170;2817:37;2376:21827:160;;;;2837:17:170;;2817:37;;;2276:344;2376:21827:160;;2428:23:170;23973:47:85;-1:-1:-1;;;;;2376:21827:160;;23973:47:85;;:::i;2428:23:170:-;2376:21827:160;;;;2466:16:170;;:37;;;;2276:344;2462:91;;;2563:50;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;1740:2:170;2376:21827:160;;;;-1:-1:-1;;;;;;2376:21827:160;1667:76:170;;2563:50;:::i;2462:91::-;2526:16;;;-1:-1:-1;2526:16:170;;-1:-1:-1;2526:16:170;2466:37;2376:21827:160;;;;2486:17:170;2466:37;;;2658:162:29;-1:-1:-1;;;;;;;;;;;2376:21827:160;-1:-1:-1;;;;;2376:21827:160;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;2376:21827:160;;-1:-1:-1;2763:40:29;23080:242:85;;;5853:18:86;5004:11:85;23080:242;5853:18:86;;:::i;:::-;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;5004:11:85;2376:21827:160;;;-1:-1:-1;2376:21827:160;;;;;;;;;23260:55:85;23080:242;:::o;21364:182::-;7898:23:86;21364:182:85;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;3096:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;7898:23:86;:::i;22972:408:160:-;-1:-1:-1;;;;;;;;;;;2376:21827:160;837:15:87;2376:21827:160;819:34:87;837:15;819:34;:::i;:::-;2376:21827:160;;;;23076:22;;23072:80;;23284:16;2376:21827;;;;;;;;;;;;23183:42;;;:87;:42;;;:87;;23284:16;:::i;:::-;2376:21827;837:15:87;819:34;837:15;819:34;:::i;:::-;2376:21827:160;;;23284:36;;23280:94;;22972:408::o;23280:94::-;23121:20;;;-1:-1:-1;23343:20:160;;-1:-1:-1;23343:20:160;23183:87;;;;23284:16;:::i;17224:208::-;2376:21827;;17343:16;;;;17224:208;;17343:16;:37;;17224:208;17343:82;;;;17336:89;;17224:208;:::o;17343:82::-;2376:21827;;17385:17;;;-1:-1:-1;2376:21827:160;17385:39;;;;17343:82;;17224:208;:::o;17385:39::-;2376:21827;;-1:-1:-1;17406:18:160;;-1:-1:-1;17224:208:160;:::o;17343:37::-;2376:21827;;;-1:-1:-1;17363:17:160;;-1:-1:-1;17343:37:160;;;16662:556;-1:-1:-1;;;;;;;;;;;2376:21827:160;16841:8;;;2376:21827;;17125:25;17160:12;;;2376:21827;;;16662:556;2376:21827;;;;;;;16662:556;16837:21;;;;;;16662:556;;;;;;;;:::o;16860:3::-;3215:12:170;;;;;;;;3268:14;16991:53:160;3215:12:170;;;;;:::i;16991:53:160:-;16990:54;16986:101;;2376:21827;;-1:-1:-1;;;17125:25:160;;2376:21827;;;;;17125:25;;2376:21827;;-1:-1:-1;;;;;2376:21827:160;17125:25;;;;;;;2376:21827;17125:25;;;2376:21827;17125:25;;;16860:3;2376:21827;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17110:91:160;;17125:25;17110:91;;2376:21827;;;-1:-1:-1;;;;;2376:21827:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17110:91;;-1:-1:-1;;;;;2376:21827:160;17110:91;;;;;;;2376:21827;17110:91;;;16860:3;17101:100;;;2376:21827;17101:100;;:::i;:::-;16860:3;16826:9;2376:21827;16826:9;;;;;;;;;17110:91;;;;;;;;;;;;;;;;:::i;:::-;;;2376:21827;;;;;;17110:91;;;;;;;17125:25;;;;;;;;;;;;;;:::i;:::-;;;;16986:101;17064:8;;2376:21827;17064:8;;;14296:213:83;2376:21827:160;14374:24:83;;14370:103;;2376:21827:160;;14296:213:83;:::o;14370:103::-;14421:41;;;;;14452:2;14421:41;2376:21827:160;;;;14421:41:83;;3330:164:85;;8192:26:86;3330:164:85;2376:21827:160;-1:-1:-1;2376:21827:160;3433:11:85;;;2376:21827:160;;-1:-1:-1;2376:21827:160;;;;8192:26:86;:::i;7082:141:30:-;2376:21827:160;-1:-1:-1;;;;;;;;;;;2376:21827:160;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5626:274:85;;2376:21827:160;-1:-1:-1;2376:21827:160;5743:11:85;;;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5773:10:85;;;;:33;;;;5626:274;5769:103;;;;5881:12;5626:274;:::o;5769:103::-;5829:32;;;-1:-1:-1;5829:32:85;;2376:21827:160;;-1:-1:-1;5829:32:85;5773:33;8806:28:86;;;5197:14;5101:129;-1:-1:-1;2376:21827:160;5197:14:86;2376:21827:160;;;-1:-1:-1;2376:21827:160;;5197:26:86;;5101:129;;8806:28;5787:19:85;5773:33;;;;2376:21827:160;;;;;;;;-1:-1:-1;2376:21827:160;;-1:-1:-1;2376:21827:160;;;-1:-1:-1;2376:21827:160;:::o;3071:1368:86:-;;3266:14;;;2376:21827:160;;;;;;;;;;;3302:13:86;;;3298:1135;3302:13;;;-1:-1:-1;;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;20638:17;2376:21827;;;;3777:23:86;;;3773:378;;3298:1135;2376:21827:160;;;;;;;;;-1:-1:-1;;2376:21827:160;;;;;;:::i;:::-;;;;20638:17;;2376:21827;;;;;;;;;;;;;;;;;;3266:14:86;4368:11;:::o;2376:21827:160:-;;;;;;;;;;;;3773:378:86;2376:21827:160;3840:22:86;3961:23;3840:22;;;:::i;:::-;2376:21827:160;;;;;;3961:23:86;;;;;:::i;:::-;2376:21827:160;;;;;;;;;;20638:17;;;2376:21827;;;;;;;;;;;;;;;;;;;3773:378:86;;;;;3298:1135;4410:12;;;;2376:21827:160;4410:12:86;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;2376:21827:160;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;2376:21827:160;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;2376:21827:160;;;;4933:24:66;2376:21827:160;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;2497:406:86;-1:-1:-1;2376:21827:160;;;5197:14:86;;;2376:21827:160;;;;;;2581:21:86;;2376:21827:160;;;-1:-1:-1;;;2376:21827:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2776:14:86;2376:21827:160;;;;;;;2832:11:86;:::o","linkReferences":{},"immutableReferences":{"46093":[{"start":7273,"length":32},{"start":7480,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"EnumerableMapNonexistentKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"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\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"_commitment\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"slashes\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"activeOperators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"maxValidators\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewards\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"AlreadyAdded()\":[{\"details\":\"Thrown when an address is already added to the map.\"}],\"AlreadyEnabled()\":[{\"details\":\"Thrown when an address is already enabled.\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnumerableMapNonexistentKey(bytes32)\":[{\"details\":\"Query for a nonexistent map key.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotEnabled()\":[{\"details\":\"Thrown when an address is not enabled.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"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.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorStakeAt(address,uint48)\":{\"returns\":{\"stake\":\"The total stake of the operator in all vaults that was active at the given timestamp.\"}},\"makeElectionAt(uint48,uint256)\":{\"details\":\"This function returns the list of validators that are will be responsible for block production in the next era.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"disableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"distributeOperatorRewards(address,uint256,bytes32)\":{\"notice\":\"The function can be called only by the Router contract.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterOperator(address)\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Middleware.sol\":\"Middleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"lib/symbiotic-core/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/symbiotic-core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/symbiotic-core/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"lib/symbiotic-core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06\",\"dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4\"]},\"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009\",\"dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg\"]},\"src/Middleware.sol\":{\"keccak256\":\"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1\",\"dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded\",\"dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadyAdded"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"type":"error","name":"EnumerableMapNonexistentKey"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotEnabled"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"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":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"_commitment","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"slashes","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"activeOperators","type":"address[]"},{"internalType":"uint256[]","name":"stakes","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"uint256","name":"maxValidators","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_rewards","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getOperatorStakeAt(address,uint48)":{"returns":{"stake":"The total stake of the operator in all vaults that was active at the given timestamp."}},"makeElectionAt(uint48,uint256)":{"details":"This function returns the list of validators that are will be responsible for block production in the next era."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"disableVault(address)":{"notice":"This function can be called only by the vault owner."},"distributeOperatorRewards(address,uint256,bytes32)":{"notice":"The function can be called only by the Router contract."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"enableVault(address)":{"notice":"This function can be called only by the vault owner."},"registerOperator()":{"notice":"This function can be called only be operator themselves."},"unregisterOperator(address)":{"notice":"This function can be called only be operator themselves."},"unregisterVault(address)":{"notice":"This function can be called only by the vault owner."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28","urls":["bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06","dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc","urls":["bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009","dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Middleware.sol":{"keccak256":"0x85c1b40fd1b55a7cf9e3f9c4f3d7979313dd41c783e5ec1817ce6c91ce7081d8","urls":["bzz-raw://dcc4ff6fec91d20d7d8979608df6af8d35cbdbb3280d1666501ed307653872e1","dweb:/ipfs/QmU2x4wMMj2abBL5rUyDzNevw8tDnYDZqCNu89oZ8eHE55"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45","urls":["bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded","dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":77297,"exportedSymbols":{"EnumerableMap":[58543],"Gear":[84181],"IAccessControl":[44539],"IBaseDelegator":[65506],"IDefaultOperatorRewards":[71798],"IDefaultStakerRewards":[71992],"IEntity":[65100],"IMiddleware":[74131],"IMigratableEntity":[65208],"INetworkMiddlewareService":[65994],"INetworkRegistry":[64998],"IOptInService":[66120],"IRegistry":[65332],"IVault":[66856],"IVetoSlasher":[66518],"MapWithTimeData":[84469],"Middleware":[77296],"OwnableUpgradeable":[42322],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"Subnetwork":[64978],"Time":[60343],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:24130:160","nodes":[{"id":75026,"nodeType":"PragmaDirective","src":"74:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":75028,"nodeType":"ImportDirective","src":"100:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":75027,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75030,"nodeType":"ImportDirective","src":"202:140:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":75029,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75032,"nodeType":"ImportDirective","src":"343:81:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":44540,"symbolAliases":[{"foreign":{"id":75031,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"351:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75034,"nodeType":"ImportDirective","src":"425:88:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":75033,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"433:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75036,"nodeType":"ImportDirective","src":"514:80:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":75035,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"522:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75038,"nodeType":"ImportDirective","src":"595:74:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":75037,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"603:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75040,"nodeType":"ImportDirective","src":"670:86:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":58544,"symbolAliases":[{"foreign":{"id":75039,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58543,"src":"678:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75042,"nodeType":"ImportDirective","src":"757:66:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":60344,"symbolAliases":[{"foreign":{"id":75041,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"765:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75044,"nodeType":"ImportDirective","src":"824:48:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":75043,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"832:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75046,"nodeType":"ImportDirective","src":"873:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":84182,"symbolAliases":[{"foreign":{"id":75045,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"881:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75048,"nodeType":"ImportDirective","src":"918:66:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":84470,"symbolAliases":[{"foreign":{"id":75047,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84469,"src":"926:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75050,"nodeType":"ImportDirective","src":"985:81:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":64979,"symbolAliases":[{"foreign":{"id":75049,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64978,"src":"993:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75052,"nodeType":"ImportDirective","src":"1067:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":64999,"symbolAliases":[{"foreign":{"id":75051,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"1075:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75054,"nodeType":"ImportDirective","src":"1152:73:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":65101,"symbolAliases":[{"foreign":{"id":75053,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"1160:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75056,"nodeType":"ImportDirective","src":"1226:93:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":65209,"symbolAliases":[{"foreign":{"id":75055,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"1234:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75058,"nodeType":"ImportDirective","src":"1320:77:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":65333,"symbolAliases":[{"foreign":{"id":75057,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"1328:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75060,"nodeType":"ImportDirective","src":"1398:90:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":65507,"symbolAliases":[{"foreign":{"id":75059,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1406:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75062,"nodeType":"ImportDirective","src":"1489:110:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":65995,"symbolAliases":[{"foreign":{"id":75061,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"1497:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75064,"nodeType":"ImportDirective","src":"1600:86:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":66121,"symbolAliases":[{"foreign":{"id":75063,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"1608:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75066,"nodeType":"ImportDirective","src":"1687:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":66519,"symbolAliases":[{"foreign":{"id":75065,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"1695:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75068,"nodeType":"ImportDirective","src":"1772:70:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":66857,"symbolAliases":[{"foreign":{"id":75067,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"1780:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75070,"nodeType":"ImportDirective","src":"1843:130:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":71799,"symbolAliases":[{"foreign":{"id":75069,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"1856:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75072,"nodeType":"ImportDirective","src":"1974:118:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":77297,"sourceUnit":71993,"symbolAliases":[{"foreign":{"id":75071,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"1982:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77296,"nodeType":"ContractDefinition","src":"2376:21827:160","nodes":[{"id":75084,"nodeType":"UsingForDirective","src":"2491:55:160","nodes":[],"global":false,"libraryName":{"id":75081,"name":"EnumerableMap","nameLocations":["2497:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2497:13:160"},"typeName":{"id":75083,"nodeType":"UserDefinedTypeName","pathNode":{"id":75082,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2515:13:160","2529:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2515:30:160"},"referencedDeclaration":56867,"src":"2515:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75088,"nodeType":"UsingForDirective","src":"2551:57:160","nodes":[],"global":false,"libraryName":{"id":75085,"name":"MapWithTimeData","nameLocations":["2557:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":84469,"src":"2557:15:160"},"typeName":{"id":75087,"nodeType":"UserDefinedTypeName","pathNode":{"id":75086,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2577:13:160","2591:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56867,"src":"2577:30:160"},"referencedDeclaration":56867,"src":"2577:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":75092,"nodeType":"UsingForDirective","src":"2614:58:160","nodes":[],"global":false,"libraryName":{"id":75089,"name":"EnumerableMap","nameLocations":["2620:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":58543,"src":"2620:13:160"},"typeName":{"id":75091,"nodeType":"UserDefinedTypeName","pathNode":{"id":75090,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2638:13:160","2652:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":57162,"src":"2638:33:160"},"referencedDeclaration":57162,"src":"2638:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$57162_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":75095,"nodeType":"UsingForDirective","src":"2678:29:160","nodes":[],"global":false,"libraryName":{"id":75093,"name":"Subnetwork","nameLocations":["2684:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64978,"src":"2684:10:160"},"typeName":{"id":75094,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75098,"nodeType":"VariableDeclaration","src":"2820:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2845:12:160","scope":77296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2820:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":75097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2860:66:160","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":75101,"nodeType":"VariableDeclaration","src":"2933:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2958:18:160","scope":77296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2933:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":75100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2979:4:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":75104,"nodeType":"VariableDeclaration","src":"2989:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3012:18:160","scope":77296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":75102,"name":"uint8","nodeType":"ElementaryTypeName","src":"2989:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":75103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3033:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":75112,"nodeType":"FunctionDefinition","src":"3109:53:160","nodes":[],"body":{"id":75111,"nodeType":"Block","src":"3123:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75108,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"3133:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75110,"nodeType":"ExpressionStatement","src":"3133:22:160"}]},"documentation":{"id":75105,"nodeType":"StructuredDocumentation","src":"3041:63:160","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75106,"nodeType":"ParameterList","parameters":[],"src":"3120:2:160"},"returnParameters":{"id":75107,"nodeType":"ParameterList","parameters":[],"src":"3123:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75266,"nodeType":"FunctionDefinition","src":"3168:1277:160","nodes":[],"body":{"id":75265,"nodeType":"Block","src":"3236:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75121,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3261:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:5:160","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"3261:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75120,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"3246:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75124,"nodeType":"ExpressionStatement","src":"3246:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75125,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"3285:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":75126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75127,"nodeType":"ExpressionStatement","src":"3285:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":75129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3345:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":75128,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77265,"src":"3329:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3329:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75131,"nodeType":"ExpressionStatement","src":"3329:50:160"},{"assignments":[75134],"declarations":[{"constant":false,"id":75134,"mutability":"mutable","name":"$","nameLocation":"3405:1:160","nodeType":"VariableDeclaration","scope":75265,"src":"3389:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75133,"nodeType":"UserDefinedTypeName","pathNode":{"id":75132,"name":"Storage","nameLocations":["3389:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"3389:7:160"},"referencedDeclaration":73928,"src":"3389:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75137,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75135,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"3409:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3409:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3389:30:160"},{"expression":{"id":75143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75138,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3430:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3432:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"3430:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75141,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3446:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3454:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73864,"src":"3446:19:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3430:35:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75144,"nodeType":"ExpressionStatement","src":"3430:35:160"},{"expression":{"id":75150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75145,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3475:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3477:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"3475:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75148,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3501:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3509:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73866,"src":"3501:29:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3475:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75151,"nodeType":"ExpressionStatement","src":"3475:55:160"},{"expression":{"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75152,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3540:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3542:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"3540:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75155,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3564:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3572:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73868,"src":"3564:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3540:51:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75158,"nodeType":"ExpressionStatement","src":"3540:51:160"},{"expression":{"id":75164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75159,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3601:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3603:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"3601:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75162,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3622:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3630:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73870,"src":"3622:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3601:45:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75165,"nodeType":"ExpressionStatement","src":"3601:45:160"},{"expression":{"id":75171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75166,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3656:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3658:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"3656:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75169,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3676:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3684:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73872,"src":"3676:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3656:43:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75172,"nodeType":"ExpressionStatement","src":"3656:43:160"},{"expression":{"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75173,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3709:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3711:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"3709:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75176,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3736:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3744:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73874,"src":"3736:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3709:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75179,"nodeType":"ExpressionStatement","src":"3709:57:160"},{"expression":{"id":75185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75180,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3776:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3778:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"3776:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75183,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3806:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3814:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73880,"src":"3806:33:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3776:63:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75186,"nodeType":"ExpressionStatement","src":"3776:63:160"},{"expression":{"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75187,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3849:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3851:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"3849:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75190,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3885:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73876,"src":"3877:31:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3849:59:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75193,"nodeType":"ExpressionStatement","src":"3849:59:160"},{"expression":{"id":75199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75194,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"3918:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3920:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"3918:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75197,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"3942:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3950:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73878,"src":"3942:27:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3918:51:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75200,"nodeType":"ExpressionStatement","src":"3918:51:160"},{"expression":{"id":75206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75201,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"4002:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4004:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"4002:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75204,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"4017:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4025:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73884,"src":"4017:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4002:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75207,"nodeType":"ExpressionStatement","src":"4002:33:160"},{"expression":{"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75208,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"4045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4047:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"4045:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75216,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75104,"src":"4085:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":75213,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4068:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77296","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77296","typeString":"contract Middleware"}],"id":75212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4060:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75211,"name":"address","nodeType":"ElementaryTypeName","src":"4060:7:160","typeDescriptions":{}}},"id":75214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4074:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":64940,"src":"4060:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint96_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,uint96) pure returns (bytes32)"}},"id":75217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4045:59:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75219,"nodeType":"ExpressionStatement","src":"4045:59:160"},{"expression":{"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75220,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"4114:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4116:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"4114:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75223,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"4130:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4138:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73882,"src":"4130:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4114:35:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75226,"nodeType":"ExpressionStatement","src":"4114:35:160"},{"expression":{"id":75232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75227,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"4160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4162:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"4160:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75230,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"4171:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4179:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"4171:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4160:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75233,"nodeType":"ExpressionStatement","src":"4160:25:160"},{"expression":{"id":75239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75234,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"4196:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4198:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"4196:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75237,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"4210:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4218:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4210:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4196:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75240,"nodeType":"ExpressionStatement","src":"4196:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":75242,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"4255:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4263:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4255:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4273:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":83296,"src":"4255:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75241,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64998,"src":"4238:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64998_$","typeString":"type(contract INetworkRegistry)"}},"id":75245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$64998","typeString":"contract INetworkRegistry"}},"id":75246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4290:15:160","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":64997,"src":"4238:67:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":75247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4238:69:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75248,"nodeType":"ExpressionStatement","src":"4238:69:160"},{"expression":{"arguments":[{"arguments":[{"id":75257,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4402:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77296","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77296","typeString":"contract Middleware"}],"id":75256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4394:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75255,"name":"address","nodeType":"ElementaryTypeName","src":"4394:7:160","typeDescriptions":{}}},"id":75258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4394:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75250,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"4343:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":75251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4351:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73889,"src":"4343:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":75252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4361:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":83298,"src":"4343:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75249,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65994,"src":"4317:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65994_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":75253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$65994","typeString":"contract INetworkMiddlewareService"}},"id":75254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4380:13:160","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":65993,"src":"4317:76:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":75259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75260,"nodeType":"ExpressionStatement","src":"4317:91:160"},{"expression":{"arguments":[{"id":75262,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75134,"src":"4436:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":75261,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76845,"src":"4419:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73928_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":75263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4419:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75264,"nodeType":"ExpressionStatement","src":"4419:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":75118,"kind":"modifierInvocation","modifierName":{"id":75117,"name":"initializer","nameLocations":["3224:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"3224:11:160"},"nodeType":"ModifierInvocation","src":"3224:11:160"}],"name":"initialize","nameLocation":"3177:10:160","parameters":{"id":75116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75115,"mutability":"mutable","name":"_params","nameLocation":"3208:7:160","nodeType":"VariableDeclaration","scope":75266,"src":"3188:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":75114,"nodeType":"UserDefinedTypeName","pathNode":{"id":75113,"name":"InitParams","nameLocations":["3188:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"3188:10:160"},"referencedDeclaration":73890,"src":"3188:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3187:29:160"},"returnParameters":{"id":75119,"nodeType":"ParameterList","parameters":[],"src":"3236:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75463,"nodeType":"FunctionDefinition","src":"4518:1578:160","nodes":[],"body":{"id":75462,"nodeType":"Block","src":"4576:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":75276,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"4601:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:7:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75275,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4586:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75279,"nodeType":"ExpressionStatement","src":"4586:23:160"},{"assignments":[75282],"declarations":[{"constant":false,"id":75282,"mutability":"mutable","name":"oldStorage","nameLocation":"4636:10:160","nodeType":"VariableDeclaration","scope":75462,"src":"4620:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75281,"nodeType":"UserDefinedTypeName","pathNode":{"id":75280,"name":"Storage","nameLocations":["4620:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4620:7:160"},"referencedDeclaration":73928,"src":"4620:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75285,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75283,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"4649:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4620:39:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":75287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4686:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":75286,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77265,"src":"4670:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":75288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75289,"nodeType":"ExpressionStatement","src":"4670:50:160"},{"assignments":[75292],"declarations":[{"constant":false,"id":75292,"mutability":"mutable","name":"newStorage","nameLocation":"4746:10:160","nodeType":"VariableDeclaration","scope":75462,"src":"4730:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75291,"nodeType":"UserDefinedTypeName","pathNode":{"id":75290,"name":"Storage","nameLocations":["4730:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"4730:7:160"},"referencedDeclaration":73928,"src":"4730:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75295,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75293,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"4759:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4759:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4730:39:160"},{"expression":{"id":75301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75296,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"4780:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4791:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4780:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75299,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"4805:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4816:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"4805:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4780:47:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75302,"nodeType":"ExpressionStatement","src":"4780:47:160"},{"expression":{"id":75308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75303,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"4837:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4848:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4837:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75306,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"4872:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4883:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"4872:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4837:67:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75309,"nodeType":"ExpressionStatement","src":"4837:67:160"},{"expression":{"id":75315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75310,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"4914:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75312,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4925:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4914:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75313,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"4947:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4958:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"4947:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4914:63:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75316,"nodeType":"ExpressionStatement","src":"4914:63:160"},{"expression":{"id":75322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75317,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"4987:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4998:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"4987:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75320,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5017:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"5017:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4987:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75323,"nodeType":"ExpressionStatement","src":"4987:57:160"},{"expression":{"id":75329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75324,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5054:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5065:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5054:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75327,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5083:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5094:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"5083:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5054:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75330,"nodeType":"ExpressionStatement","src":"5054:55:160"},{"expression":{"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75331,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5119:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5130:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5119:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75334,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5155:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5166:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"5155:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5119:69:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":75337,"nodeType":"ExpressionStatement","src":"5119:69:160"},{"expression":{"id":75343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75338,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5198:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5209:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5198:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75341,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5237:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5248:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"5237:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5198:75:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75344,"nodeType":"ExpressionStatement","src":"5198:75:160"},{"expression":{"id":75350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75345,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5283:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5294:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5283:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75348,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5320:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5331:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"5320:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5283:71:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75351,"nodeType":"ExpressionStatement","src":"5283:71:160"},{"expression":{"id":75357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75352,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5364:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75354,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5375:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5364:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75355,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5397:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5408:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"5397:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5364:63:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":75358,"nodeType":"ExpressionStatement","src":"5364:63:160"},{"expression":{"id":75364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75359,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5437:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5448:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5437:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75362,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5461:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5472:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"5461:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5437:45:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75365,"nodeType":"ExpressionStatement","src":"5437:45:160"},{"expression":{"id":75371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75366,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5492:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5503:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5492:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75369,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5516:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5527:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"5516:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5492:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":75372,"nodeType":"ExpressionStatement","src":"5492:45:160"},{"expression":{"id":75378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75373,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5547:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5558:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5547:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75376,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5572:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5583:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"5572:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5547:47:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75379,"nodeType":"ExpressionStatement","src":"5547:47:160"},{"expression":{"id":75385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75380,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5604:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5604:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75383,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5624:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75384,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5635:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"5624:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5604:37:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75386,"nodeType":"ExpressionStatement","src":"5604:37:160"},{"expression":{"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75387,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5651:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5662:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5651:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75390,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5674:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5685:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"5674:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5651:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75393,"nodeType":"ExpressionStatement","src":"5651:43:160"},{"body":{"id":75426,"nodeType":"Block","src":"5765:132:160","statements":[{"assignments":[75408,75410],"declarations":[{"constant":false,"id":75408,"mutability":"mutable","name":"key","nameLocation":"5788:3:160","nodeType":"VariableDeclaration","scope":75426,"src":"5780:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75407,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75410,"mutability":"mutable","name":"value","nameLocation":"5801:5:160","nodeType":"VariableDeclaration","scope":75426,"src":"5793:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75409,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75416,"initialValue":{"arguments":[{"id":75414,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75395,"src":"5834:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75411,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5810:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5821:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5810:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5831:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"5810:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5810:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5779:57:160"},{"expression":{"arguments":[{"id":75422,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"5875:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75423,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"5880:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75417,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"5850:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5861:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5850:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5871:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"5850:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5850:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75425,"nodeType":"ExpressionStatement","src":"5850:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75395,"src":"5725:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75399,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5729:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5740:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"5729:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5750:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5729:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5729:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5725:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75427,"initializationExpression":{"assignments":[75395],"declarations":[{"constant":false,"id":75395,"mutability":"mutable","name":"i","nameLocation":"5718:1:160","nodeType":"VariableDeclaration","scope":75427,"src":"5710:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75394,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75397,"initialValue":{"hexValue":"30","id":75396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5722:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5710:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5760:3:160","subExpression":{"id":75404,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75395,"src":"5760:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75406,"nodeType":"ExpressionStatement","src":"5760:3:160"},"nodeType":"ForStatement","src":"5705:192:160"},{"body":{"id":75460,"nodeType":"Block","src":"5964:126:160","statements":[{"assignments":[75442,75444],"declarations":[{"constant":false,"id":75442,"mutability":"mutable","name":"key","nameLocation":"5987:3:160","nodeType":"VariableDeclaration","scope":75460,"src":"5979:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75441,"name":"address","nodeType":"ElementaryTypeName","src":"5979:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75444,"mutability":"mutable","name":"value","nameLocation":"6000:5:160","nodeType":"VariableDeclaration","scope":75460,"src":"5992:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75443,"name":"uint256","nodeType":"ElementaryTypeName","src":"5992:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75450,"initialValue":{"arguments":[{"id":75448,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75429,"src":"6030:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75445,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"6009:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6020:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6009:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6027:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":57022,"src":"6009:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":75449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5978:54:160"},{"expression":{"arguments":[{"id":75456,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75442,"src":"6068:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75457,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75444,"src":"6073:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75451,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"6046:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6057:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"6046:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6064:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56900,"src":"6046:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":75458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6046:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75459,"nodeType":"ExpressionStatement","src":"6046:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75432,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75429,"src":"5927:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75433,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"5931:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5942:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"5931:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5949:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"5931:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5927:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75461,"initializationExpression":{"assignments":[75429],"declarations":[{"constant":false,"id":75429,"mutability":"mutable","name":"i","nameLocation":"5920:1:160","nodeType":"VariableDeclaration","scope":75461,"src":"5912:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75428,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75431,"initialValue":{"hexValue":"30","id":75430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5924:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5912:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:160","subExpression":{"id":75438,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75429,"src":"5959:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75440,"nodeType":"ExpressionStatement","src":"5959:3:160"},"nodeType":"ForStatement","src":"5907:183:160"}]},"documentation":{"id":75267,"nodeType":"StructuredDocumentation","src":"4451:62:160","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":75270,"kind":"modifierInvocation","modifierName":{"id":75269,"name":"onlyOwner","nameLocations":["4549:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"4549:9:160"},"nodeType":"ModifierInvocation","src":"4549:9:160"},{"arguments":[{"hexValue":"32","id":75272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4573:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":75273,"kind":"modifierInvocation","modifierName":{"id":75271,"name":"reinitializer","nameLocations":["4559:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"4559:13:160"},"nodeType":"ModifierInvocation","src":"4559:16:160"}],"name":"reinitialize","nameLocation":"4527:12:160","parameters":{"id":75268,"nodeType":"ParameterList","parameters":[],"src":"4539:2:160"},"returnParameters":{"id":75274,"nodeType":"ParameterList","parameters":[],"src":"4576:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75473,"nodeType":"FunctionDefinition","src":"6261:84:160","nodes":[],"body":{"id":75472,"nodeType":"Block","src":"6343:2:160","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":75464,"nodeType":"StructuredDocumentation","src":"6102:154:160","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":75470,"kind":"modifierInvocation","modifierName":{"id":75469,"name":"onlyOwner","nameLocations":["6333:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6333:9:160"},"nodeType":"ModifierInvocation","src":"6333:9:160"}],"name":"_authorizeUpgrade","nameLocation":"6270:17:160","overrides":{"id":75468,"nodeType":"OverrideSpecifier","overrides":[],"src":"6324:8:160"},"parameters":{"id":75467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75466,"mutability":"mutable","name":"newImplementation","nameLocation":"6296:17:160","nodeType":"VariableDeclaration","scope":75473,"src":"6288:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75465,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6287:27:160"},"returnParameters":{"id":75471,"nodeType":"ParameterList","parameters":[],"src":"6343:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75483,"nodeType":"FunctionDefinition","src":"6370:98:160","nodes":[],"body":{"id":75482,"nodeType":"Block","src":"6422:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75478,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"6439:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6439:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6450:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"6439:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75477,"id":75481,"nodeType":"Return","src":"6432:29:160"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6379:11:160","parameters":{"id":75474,"nodeType":"ParameterList","parameters":[],"src":"6390:2:160"},"returnParameters":{"id":75477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75476,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75483,"src":"6414:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75475,"name":"uint48","nodeType":"ElementaryTypeName","src":"6414:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6413:8:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75493,"nodeType":"FunctionDefinition","src":"6474:118:160","nodes":[],"body":{"id":75492,"nodeType":"Block","src":"6536:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75488,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"6553:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6553:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6564:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"6553:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75487,"id":75491,"nodeType":"Return","src":"6546:39:160"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6483:21:160","parameters":{"id":75484,"nodeType":"ParameterList","parameters":[],"src":"6504:2:160"},"returnParameters":{"id":75487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75493,"src":"6528:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75485,"name":"uint48","nodeType":"ElementaryTypeName","src":"6528:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6527:8:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75503,"nodeType":"FunctionDefinition","src":"6598:116:160","nodes":[],"body":{"id":75502,"nodeType":"Block","src":"6660:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75498,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"6677:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6677:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6688:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"6677:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75497,"id":75501,"nodeType":"Return","src":"6670:37:160"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6607:19:160","parameters":{"id":75494,"nodeType":"ParameterList","parameters":[],"src":"6626:2:160"},"returnParameters":{"id":75497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75503,"src":"6652:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75495,"name":"uint48","nodeType":"ElementaryTypeName","src":"6652:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6651:8:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75513,"nodeType":"FunctionDefinition","src":"6720:110:160","nodes":[],"body":{"id":75512,"nodeType":"Block","src":"6779:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75508,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"6796:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6796:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6807:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"6796:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75507,"id":75511,"nodeType":"Return","src":"6789:34:160"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6729:16:160","parameters":{"id":75504,"nodeType":"ParameterList","parameters":[],"src":"6745:2:160"},"returnParameters":{"id":75507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75513,"src":"6771:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75505,"name":"uint48","nodeType":"ElementaryTypeName","src":"6771:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6770:8:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75523,"nodeType":"FunctionDefinition","src":"6836:108:160","nodes":[],"body":{"id":75522,"nodeType":"Block","src":"6894:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75518,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"6911:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6922:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"6911:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75517,"id":75521,"nodeType":"Return","src":"6904:33:160"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6845:15:160","parameters":{"id":75514,"nodeType":"ParameterList","parameters":[],"src":"6860:2:160"},"returnParameters":{"id":75517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75523,"src":"6886:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75515,"name":"uint48","nodeType":"ElementaryTypeName","src":"6886:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6885:8:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75533,"nodeType":"FunctionDefinition","src":"6950:122:160","nodes":[],"body":{"id":75532,"nodeType":"Block","src":"7015:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75528,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7032:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7032:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7043:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"7032:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":75527,"id":75531,"nodeType":"Return","src":"7025:40:160"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6959:22:160","parameters":{"id":75524,"nodeType":"ParameterList","parameters":[],"src":"6981:2:160"},"returnParameters":{"id":75527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75533,"src":"7007:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75525,"name":"uint48","nodeType":"ElementaryTypeName","src":"7007:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7006:8:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75543,"nodeType":"FunctionDefinition","src":"7078:129:160","nodes":[],"body":{"id":75542,"nodeType":"Block","src":"7147:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75538,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7164:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7164:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7175:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"7164:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75537,"id":75541,"nodeType":"Return","src":"7157:43:160"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7087:25:160","parameters":{"id":75534,"nodeType":"ParameterList","parameters":[],"src":"7112:2:160"},"returnParameters":{"id":75537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75543,"src":"7138:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75535,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:9:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75553,"nodeType":"FunctionDefinition","src":"7213:124:160","nodes":[],"body":{"id":75552,"nodeType":"Block","src":"7279:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75548,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7296:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7296:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7307:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"7296:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75547,"id":75551,"nodeType":"Return","src":"7289:41:160"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7222:23:160","parameters":{"id":75544,"nodeType":"ParameterList","parameters":[],"src":"7245:2:160"},"returnParameters":{"id":75547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75546,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75553,"src":"7271:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75545,"name":"uint64","nodeType":"ElementaryTypeName","src":"7271:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7270:8:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75563,"nodeType":"FunctionDefinition","src":"7343:116:160","nodes":[],"body":{"id":75562,"nodeType":"Block","src":"7405:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75558,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7422:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7422:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7433:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"7422:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":75557,"id":75561,"nodeType":"Return","src":"7415:37:160"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7352:19:160","parameters":{"id":75554,"nodeType":"ParameterList","parameters":[],"src":"7371:2:160"},"returnParameters":{"id":75557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75563,"src":"7397:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":75555,"name":"uint64","nodeType":"ElementaryTypeName","src":"7397:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7396:8:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75573,"nodeType":"FunctionDefinition","src":"7465:99:160","nodes":[],"body":{"id":75572,"nodeType":"Block","src":"7519:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75568,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7536:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7547:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"7536:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75567,"id":75571,"nodeType":"Return","src":"7529:28:160"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7474:10:160","parameters":{"id":75564,"nodeType":"ParameterList","parameters":[],"src":"7484:2:160"},"returnParameters":{"id":75567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75573,"src":"7510:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75565,"name":"address","nodeType":"ElementaryTypeName","src":"7510:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7509:9:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75583,"nodeType":"FunctionDefinition","src":"7570:99:160","nodes":[],"body":{"id":75582,"nodeType":"Block","src":"7624:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75578,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7641:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7641:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7652:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"7641:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75577,"id":75581,"nodeType":"Return","src":"7634:28:160"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7579:10:160","parameters":{"id":75574,"nodeType":"ParameterList","parameters":[],"src":"7589:2:160"},"returnParameters":{"id":75577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75583,"src":"7615:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7615:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7614:9:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75593,"nodeType":"FunctionDefinition","src":"7675:101:160","nodes":[],"body":{"id":75592,"nodeType":"Block","src":"7730:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75588,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7747:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7747:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7758:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"7747:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75587,"id":75591,"nodeType":"Return","src":"7740:29:160"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7684:11:160","parameters":{"id":75584,"nodeType":"ParameterList","parameters":[],"src":"7695:2:160"},"returnParameters":{"id":75587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75593,"src":"7721:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75585,"name":"uint256","nodeType":"ElementaryTypeName","src":"7721:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7720:9:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75603,"nodeType":"FunctionDefinition","src":"7782:91:160","nodes":[],"body":{"id":75602,"nodeType":"Block","src":"7832:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75598,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7849:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7849:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7860:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"7849:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":75597,"id":75601,"nodeType":"Return","src":"7842:24:160"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7791:6:160","parameters":{"id":75594,"nodeType":"ParameterList","parameters":[],"src":"7797:2:160"},"returnParameters":{"id":75597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75596,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75603,"src":"7823:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75595,"name":"address","nodeType":"ElementaryTypeName","src":"7823:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7822:9:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75614,"nodeType":"FunctionDefinition","src":"7879:129:160","nodes":[],"body":{"id":75613,"nodeType":"Block","src":"7964:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75609,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"7981:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7981:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7992:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"7981:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":75608,"id":75612,"nodeType":"Return","src":"7974:27:160"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7888:18:160","parameters":{"id":75604,"nodeType":"ParameterList","parameters":[],"src":"7906:2:160"},"returnParameters":{"id":75608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75614,"src":"7932:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":75606,"nodeType":"UserDefinedTypeName","pathNode":{"id":75605,"name":"Gear.SymbioticContracts","nameLocations":["7932:4:160","7937:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":83311,"src":"7932:23:160"},"referencedDeclaration":83311,"src":"7932:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7931:32:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75645,"nodeType":"FunctionDefinition","src":"8033:263:160","nodes":[],"body":{"id":75644,"nodeType":"Block","src":"8089:207:160","nodes":[],"statements":[{"assignments":[75621],"declarations":[{"constant":false,"id":75621,"mutability":"mutable","name":"$","nameLocation":"8115:1:160","nodeType":"VariableDeclaration","scope":75644,"src":"8099:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75620,"nodeType":"UserDefinedTypeName","pathNode":{"id":75619,"name":"Storage","nameLocations":["8099:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8099:7:160"},"referencedDeclaration":73928,"src":"8099:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75624,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75622,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"8119:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8119:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8099:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75625,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8143:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8147:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8143:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75627,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75621,"src":"8157:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8159:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8157:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8169:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83306,"src":"8157:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8143:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75635,"nodeType":"IfStatement","src":"8139:101:160","trueBody":{"id":75634,"nodeType":"Block","src":"8189:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75631,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"8210:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8210:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75633,"nodeType":"RevertStatement","src":"8203:26:160"}]}},{"expression":{"id":75642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75636,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75621,"src":"8249:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8251:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8249:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8261:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83306,"src":"8249:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75641,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75616,"src":"8282:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8249:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75643,"nodeType":"ExpressionStatement","src":"8249:40:160"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8042:20:160","parameters":{"id":75617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75616,"mutability":"mutable","name":"newRole","nameLocation":"8071:7:160","nodeType":"VariableDeclaration","scope":75645,"src":"8063:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75615,"name":"address","nodeType":"ElementaryTypeName","src":"8063:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8062:17:160"},"returnParameters":{"id":75618,"nodeType":"ParameterList","parameters":[],"src":"8089:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75676,"nodeType":"FunctionDefinition","src":"8302:259:160","nodes":[],"body":{"id":75675,"nodeType":"Block","src":"8357:204:160","nodes":[],"statements":[{"assignments":[75652],"declarations":[{"constant":false,"id":75652,"mutability":"mutable","name":"$","nameLocation":"8383:1:160","nodeType":"VariableDeclaration","scope":75675,"src":"8367:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75651,"nodeType":"UserDefinedTypeName","pathNode":{"id":75650,"name":"Storage","nameLocations":["8367:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8367:7:160"},"referencedDeclaration":73928,"src":"8367:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75655,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75653,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"8387:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8387:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8367:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75656,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8411:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8415:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8411:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75658,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75652,"src":"8425:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8427:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8425:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8437:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83308,"src":"8425:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8411:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75666,"nodeType":"IfStatement","src":"8407:99:160","trueBody":{"id":75665,"nodeType":"Block","src":"8456:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75662,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"8477:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75664,"nodeType":"RevertStatement","src":"8470:25:160"}]}},{"expression":{"id":75673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":75667,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75652,"src":"8515:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8517:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8515:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8527:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83308,"src":"8515:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75672,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75647,"src":"8547:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8515:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75674,"nodeType":"ExpressionStatement","src":"8515:39:160"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8311:19:160","parameters":{"id":75648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75647,"mutability":"mutable","name":"newRole","nameLocation":"8339:7:160","nodeType":"VariableDeclaration","scope":75676,"src":"8331:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75646,"name":"address","nodeType":"ElementaryTypeName","src":"8331:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8330:17:160"},"returnParameters":{"id":75649,"nodeType":"ParameterList","parameters":[],"src":"8357:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75730,"nodeType":"FunctionDefinition","src":"8617:405:160","nodes":[],"body":{"id":75729,"nodeType":"Block","src":"8654:368:160","nodes":[],"statements":[{"assignments":[75681],"declarations":[{"constant":false,"id":75681,"mutability":"mutable","name":"$","nameLocation":"8680:1:160","nodeType":"VariableDeclaration","scope":75729,"src":"8664:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75680,"nodeType":"UserDefinedTypeName","pathNode":{"id":75679,"name":"Storage","nameLocations":["8664:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"8664:7:160"},"referencedDeclaration":73928,"src":"8664:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75684,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75682,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"8684:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8684:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8664:30:160"},{"condition":{"id":75694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8709:61:160","subExpression":{"arguments":[{"expression":{"id":75691,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8759:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8763:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8759:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75686,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75681,"src":"8720:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8722:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8720:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8732:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":83294,"src":"8720:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75685,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"8710:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":75689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":75690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8750:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"8710:48:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":75693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8710:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75699,"nodeType":"IfStatement","src":"8705:121:160","trueBody":{"id":75698,"nodeType":"Block","src":"8772:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75695,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73773,"src":"8793:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8793:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75697,"nodeType":"RevertStatement","src":"8786:29:160"}]}},{"condition":{"id":75713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8839:77:160","subExpression":{"arguments":[{"expression":{"id":75706,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8890:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8894:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8890:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":75710,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8910:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$77296","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$77296","typeString":"contract Middleware"}],"id":75709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8902:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75708,"name":"address","nodeType":"ElementaryTypeName","src":"8902:7:160","typeDescriptions":{}}},"id":75711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8902:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75701,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75681,"src":"8854:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"8854:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8866:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":83300,"src":"8854:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75700,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66120,"src":"8840:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$66120_$","typeString":"type(contract IOptInService)"}},"id":75704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$66120","typeString":"contract IOptInService"}},"id":75705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8880:9:160","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":66067,"src":"8840:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":75712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8840:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75718,"nodeType":"IfStatement","src":"8835:137:160","trueBody":{"id":75717,"nodeType":"Block","src":"8918:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75714,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73776,"src":"8939:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8939:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75716,"nodeType":"RevertStatement","src":"8932:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":75724,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9001:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9005:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9001:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":75726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9013:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"expression":{"id":75719,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75681,"src":"8982:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8984:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"8982:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8994:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84294,"src":"8982:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":75727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75728,"nodeType":"ExpressionStatement","src":"8982:33:160"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8626:16:160","parameters":{"id":75677,"nodeType":"ParameterList","parameters":[],"src":"8642:2:160"},"returnParameters":{"id":75678,"nodeType":"ParameterList","parameters":[],"src":"8654:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75742,"nodeType":"FunctionDefinition","src":"9028:93:160","nodes":[],"body":{"id":75741,"nodeType":"Block","src":"9064:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75737,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9103:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9107:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9103:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75733,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"9074:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9085:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9074:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9095:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84388,"src":"9074:28:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75740,"nodeType":"ExpressionStatement","src":"9074:40:160"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9037:15:160","parameters":{"id":75731,"nodeType":"ParameterList","parameters":[],"src":"9052:2:160"},"returnParameters":{"id":75732,"nodeType":"ParameterList","parameters":[],"src":"9064:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75754,"nodeType":"FunctionDefinition","src":"9127:91:160","nodes":[],"body":{"id":75753,"nodeType":"Block","src":"9162:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":75749,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9200:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9204:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9200:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75745,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"9172:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9183:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9172:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9193:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84341,"src":"9172:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9172:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75752,"nodeType":"ExpressionStatement","src":"9172:39:160"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9136:14:160","parameters":{"id":75743,"nodeType":"ParameterList","parameters":[],"src":"9150:2:160"},"returnParameters":{"id":75744,"nodeType":"ParameterList","parameters":[],"src":"9162:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75799,"nodeType":"FunctionDefinition","src":"9224:362:160","nodes":[],"body":{"id":75798,"nodeType":"Block","src":"9279:307:160","nodes":[],"statements":[{"assignments":[75761],"declarations":[{"constant":false,"id":75761,"mutability":"mutable","name":"$","nameLocation":"9305:1:160","nodeType":"VariableDeclaration","scope":75798,"src":"9289:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75760,"nodeType":"UserDefinedTypeName","pathNode":{"id":75759,"name":"Storage","nameLocations":["9289:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9289:7:160"},"referencedDeclaration":73928,"src":"9289:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75764,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75762,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"9309:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9309:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9289:30:160"},{"assignments":[null,75766],"declarations":[null,{"constant":false,"id":75766,"mutability":"mutable","name":"disabledTime","nameLocation":"9340:12:160","nodeType":"VariableDeclaration","scope":75798,"src":"9333:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75765,"name":"uint48","nodeType":"ElementaryTypeName","src":"9333:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75772,"initialValue":{"arguments":[{"id":75770,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75756,"src":"9377:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75767,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75761,"src":"9356:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9358:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9356:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9368:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84447,"src":"9356:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9330:56:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75773,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75766,"src":"9401:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9417:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9401:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75776,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"9422:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":75777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9427:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"9422:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":75778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9422:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75779,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75766,"src":"9441:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75780,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75761,"src":"9456:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9458:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"9456:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9441:36:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9422:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9401:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75789,"nodeType":"IfStatement","src":"9397:144:160","trueBody":{"id":75788,"nodeType":"Block","src":"9479:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75785,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73761,"src":"9500:28:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9500:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75787,"nodeType":"RevertStatement","src":"9493:37:160"}]}},{"expression":{"arguments":[{"id":75795,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75756,"src":"9570:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75790,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75761,"src":"9551:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9553:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"9551:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9563:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"9551:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":75796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9551:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75797,"nodeType":"ExpressionStatement","src":"9551:28:160"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9233:18:160","parameters":{"id":75757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75756,"mutability":"mutable","name":"operator","nameLocation":"9260:8:160","nodeType":"VariableDeclaration","scope":75799,"src":"9252:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75755,"name":"address","nodeType":"ElementaryTypeName","src":"9252:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9251:18:160"},"returnParameters":{"id":75758,"nodeType":"ParameterList","parameters":[],"src":"9279:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75857,"nodeType":"FunctionDefinition","src":"9592:494:160","nodes":[],"body":{"id":75856,"nodeType":"Block","src":"9699:387:160","nodes":[],"statements":[{"assignments":[75812],"declarations":[{"constant":false,"id":75812,"mutability":"mutable","name":"$","nameLocation":"9725:1:160","nodeType":"VariableDeclaration","scope":75856,"src":"9709:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75811,"nodeType":"UserDefinedTypeName","pathNode":{"id":75810,"name":"Storage","nameLocations":["9709:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"9709:7:160"},"referencedDeclaration":73928,"src":"9709:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75815,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75813,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"9729:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9729:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9709:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75816,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9754:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9758:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9754:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75818,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75812,"src":"9768:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9770:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9768:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9754:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75825,"nodeType":"IfStatement","src":"9750:71:160","trueBody":{"id":75824,"nodeType":"Block","src":"9778:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75821,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"9799:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9799:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75823,"nodeType":"RevertStatement","src":"9792:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75826,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75801,"src":"9835:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75827,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75812,"src":"9844:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9846:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"9844:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9835:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75834,"nodeType":"IfStatement","src":"9831:78:160","trueBody":{"id":75833,"nodeType":"Block","src":"9858:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75830,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"9879:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9879:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75832,"nodeType":"RevertStatement","src":"9872:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":75841,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75812,"src":"9990:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9992:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"9990:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75843,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75801,"src":"10000:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75844,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"10007:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75845,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75805,"src":"10015:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"expression":{"id":75836,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75812,"src":"9943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9945:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"9943:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9955:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":83304,"src":"9943:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75835,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71798,"src":"9919:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71798_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":75839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$71798","typeString":"contract IDefaultOperatorRewards"}},"id":75840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9972:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71780,"src":"9919:70:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":75846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:101:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75847,"nodeType":"ExpressionStatement","src":"9919:101:160"},{"expression":{"arguments":[{"arguments":[{"id":75851,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"10065:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75852,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75805,"src":"10073:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10048:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10052:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"10048:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10048:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75848,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10038:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10038:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75809,"id":75855,"nodeType":"Return","src":"10031:48:160"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9601:25:160","parameters":{"id":75806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75801,"mutability":"mutable","name":"token","nameLocation":"9635:5:160","nodeType":"VariableDeclaration","scope":75857,"src":"9627:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75800,"name":"address","nodeType":"ElementaryTypeName","src":"9627:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75803,"mutability":"mutable","name":"amount","nameLocation":"9650:6:160","nodeType":"VariableDeclaration","scope":75857,"src":"9642:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75802,"name":"uint256","nodeType":"ElementaryTypeName","src":"9642:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75805,"mutability":"mutable","name":"root","nameLocation":"9666:4:160","nodeType":"VariableDeclaration","scope":75857,"src":"9658:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75804,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9658:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9626:45:160"},"returnParameters":{"id":75809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75857,"src":"9690:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9690:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9689:9:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76005,"nodeType":"FunctionDefinition","src":"10092:1224:160","nodes":[],"body":{"id":76004,"nodeType":"Block","src":"10239:1077:160","nodes":[],"statements":[{"assignments":[75869],"declarations":[{"constant":false,"id":75869,"mutability":"mutable","name":"$","nameLocation":"10265:1:160","nodeType":"VariableDeclaration","scope":76004,"src":"10249:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75868,"nodeType":"UserDefinedTypeName","pathNode":{"id":75867,"name":"Storage","nameLocations":["10249:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"10249:7:160"},"referencedDeclaration":73928,"src":"10249:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75872,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75870,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"10269:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10269:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10249:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75873,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10294:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10298:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10294:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75875,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75869,"src":"10308:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10310:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"10308:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10294:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75882,"nodeType":"IfStatement","src":"10290:71:160","trueBody":{"id":75881,"nodeType":"Block","src":"10318:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75878,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"10339:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10339:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75880,"nodeType":"RevertStatement","src":"10332:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75883,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"10375:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10387:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83124,"src":"10375:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75885,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75869,"src":"10396:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10398:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"10396:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10375:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75892,"nodeType":"IfStatement","src":"10371:90:160","trueBody":{"id":75891,"nodeType":"Block","src":"10410:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75888,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"10431:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10431:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75890,"nodeType":"RevertStatement","src":"10424:26:160"}]}},{"assignments":[75894],"declarations":[{"constant":false,"id":75894,"mutability":"mutable","name":"distributionBytes","nameLocation":"10484:17:160","nodeType":"VariableDeclaration","scope":76004,"src":"10471:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75893,"name":"bytes","nodeType":"ElementaryTypeName","src":"10471:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75895,"nodeType":"VariableDeclarationStatement","src":"10471:30:160"},{"body":{"id":75987,"nodeType":"Block","src":"10573:615:160","statements":[{"assignments":[75912],"declarations":[{"constant":false,"id":75912,"mutability":"mutable","name":"rewards","nameLocation":"10613:7:160","nodeType":"VariableDeclaration","scope":75987,"src":"10587:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":75911,"nodeType":"UserDefinedTypeName","pathNode":{"id":75910,"name":"Gear.StakerRewards","nameLocations":["10587:4:160","10592:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":83131,"src":"10587:18:160"},"referencedDeclaration":83131,"src":"10587:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":75917,"initialValue":{"baseExpression":{"expression":{"id":75913,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"10623:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10635:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83120,"src":"10623:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83131_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75916,"indexExpression":{"id":75915,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75897,"src":"10648:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10623:27:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10587:63:160"},{"condition":{"id":75924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10669:33:160","subExpression":{"arguments":[{"expression":{"id":75921,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75912,"src":"10688:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10696:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"10688:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75918,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75869,"src":"10670:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10672:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10670:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10679:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"10670:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10670:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75929,"nodeType":"IfStatement","src":"10665:99:160","trueBody":{"id":75928,"nodeType":"Block","src":"10704:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75925,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"10729:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10729:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75927,"nodeType":"RevertStatement","src":"10722:27:160"}]}},{"assignments":[75931],"declarations":[{"constant":false,"id":75931,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10786:14:160","nodeType":"VariableDeclaration","scope":75987,"src":"10778:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75930,"name":"address","nodeType":"ElementaryTypeName","src":"10778:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75941,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":75937,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75912,"src":"10834:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10842:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"10834:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75934,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75869,"src":"10811:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10813:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"10811:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10820:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":84468,"src":"10811:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":75939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10811:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":75933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10803:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75932,"name":"address","nodeType":"ElementaryTypeName","src":"10803:7:160","typeDescriptions":{}}},"id":75940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10803:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10778:71:160"},{"assignments":[75943],"declarations":[{"constant":false,"id":75943,"mutability":"mutable","name":"data","nameLocation":"10877:4:160","nodeType":"VariableDeclaration","scope":75987,"src":"10864:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75942,"name":"bytes","nodeType":"ElementaryTypeName","src":"10864:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75958,"initialValue":{"arguments":[{"id":75946,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75862,"src":"10895:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":75947,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75869,"src":"10906:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10908:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73913,"src":"10906:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":75951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10927:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10921:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75949,"name":"bytes","nodeType":"ElementaryTypeName","src":"10921:5:160","typeDescriptions":{}}},"id":75952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10921:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":75955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10938:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":75954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10932:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75953,"name":"bytes","nodeType":"ElementaryTypeName","src":"10932:5:160","typeDescriptions":{}}},"id":75956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10932:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75944,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10888:6:160","memberName":"encode","nodeType":"MemberAccess","src":"10884:10:160","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10884:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10864:78:160"},{"expression":{"arguments":[{"expression":{"id":75963,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75869,"src":"11012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11014:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"11012:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75965,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"11022:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11034:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83124,"src":"11022:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75967,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75912,"src":"11041:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11049:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83130,"src":"11041:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75969,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75943,"src":"11057:4:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75960,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75931,"src":"10978:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75959,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"10956:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":75962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10994:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":72068,"src":"10956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory) external"}},"id":75970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10956:106:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75971,"nodeType":"ExpressionStatement","src":"10956:106:160"},{"expression":{"id":75985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75972,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11077:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75976,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11110:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75979,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75912,"src":"11146:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75980,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11154:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"11146:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75981,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75912,"src":"11161:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$83131_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11169:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83130,"src":"11161:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75977,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11129:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11133:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11129:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_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":"11129:47:160","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":75974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11097:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75973,"name":"bytes","nodeType":"ElementaryTypeName","src":"11097:5:160","typeDescriptions":{}}},"id":75975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11103:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11097:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11097:80:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11077:100:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75986,"nodeType":"ExpressionStatement","src":"11077:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75897,"src":"10531:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75901,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"10535:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10547:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":83120,"src":"10535:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$83131_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":75903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10560:6:160","memberName":"length","nodeType":"MemberAccess","src":"10535:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10531:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75988,"initializationExpression":{"assignments":[75897],"declarations":[{"constant":false,"id":75897,"mutability":"mutable","name":"i","nameLocation":"10524:1:160","nodeType":"VariableDeclaration","scope":75988,"src":"10516:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75896,"name":"uint256","nodeType":"ElementaryTypeName","src":"10516:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75899,"initialValue":{"hexValue":"30","id":75898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10528:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10516:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10568:3:160","subExpression":{"id":75905,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75897,"src":"10570:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75907,"nodeType":"ExpressionStatement","src":"10568:3:160"},"nodeType":"ForStatement","src":"10511:677:160"},{"expression":{"arguments":[{"arguments":[{"id":75993,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75894,"src":"11228:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75996,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"11264:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11276:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"11264:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75998,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75860,"src":"11289:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11301:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":83124,"src":"11289:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75994,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11247:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11251:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11247:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11247:60:160","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":75991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11215:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75990,"name":"bytes","nodeType":"ElementaryTypeName","src":"11215:5:160","typeDescriptions":{}}},"id":75992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11221:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11215:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11215:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75989,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11205:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:104:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":75866,"id":76003,"nodeType":"Return","src":"11198:111:160"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10101:23:160","parameters":{"id":75863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75860,"mutability":"mutable","name":"_commitment","nameLocation":"10161:11:160","nodeType":"VariableDeclaration","scope":76005,"src":"10125:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":75859,"nodeType":"UserDefinedTypeName","pathNode":{"id":75858,"name":"Gear.StakerRewardsCommitment","nameLocations":["10125:4:160","10130:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":83125,"src":"10125:28:160"},"referencedDeclaration":83125,"src":"10125:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":75862,"mutability":"mutable","name":"timestamp","nameLocation":"10181:9:160","nodeType":"VariableDeclaration","scope":76005,"src":"10174:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75861,"name":"uint48","nodeType":"ElementaryTypeName","src":"10174:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10124:67:160"},"returnParameters":{"id":75866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76005,"src":"10226:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10226:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10225:9:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76036,"nodeType":"FunctionDefinition","src":"11322:236:160","nodes":[],"body":{"id":76035,"nodeType":"Block","src":"11407:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76016,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76007,"src":"11432:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76015,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77112,"src":"11417:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11417:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76018,"nodeType":"ExpressionStatement","src":"11417:22:160"},{"expression":{"arguments":[{"id":76020,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76007,"src":"11472:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76021,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76009,"src":"11480:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76019,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77159,"src":"11449:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":76022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11449:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76023,"nodeType":"ExpressionStatement","src":"11449:40:160"},{"expression":{"arguments":[{"id":76028,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76007,"src":"11525:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76031,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76009,"src":"11541:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11533:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":76029,"name":"uint160","nodeType":"ElementaryTypeName","src":"11533:7:160","typeDescriptions":{}}},"id":76032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11533:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76024,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"11500:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11511:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11500:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11518:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":84294,"src":"11500:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":76033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11500:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76034,"nodeType":"ExpressionStatement","src":"11500:51:160"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76012,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76007,"src":"11399:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76013,"kind":"modifierInvocation","modifierName":{"id":76011,"name":"vaultOwner","nameLocations":["11388:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77275,"src":"11388:10:160"},"nodeType":"ModifierInvocation","src":"11388:18:160"}],"name":"registerVault","nameLocation":"11331:13:160","parameters":{"id":76010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76007,"mutability":"mutable","name":"_vault","nameLocation":"11353:6:160","nodeType":"VariableDeclaration","scope":76036,"src":"11345:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76006,"name":"address","nodeType":"ElementaryTypeName","src":"11345:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76009,"mutability":"mutable","name":"_rewards","nameLocation":"11369:8:160","nodeType":"VariableDeclaration","scope":76036,"src":"11361:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76008,"name":"address","nodeType":"ElementaryTypeName","src":"11361:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11344:34:160"},"returnParameters":{"id":76014,"nodeType":"ParameterList","parameters":[],"src":"11407:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76052,"nodeType":"FunctionDefinition","src":"11564:113:160","nodes":[],"body":{"id":76051,"nodeType":"Block","src":"11628:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76048,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76038,"src":"11664:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76044,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"11638:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11649:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11638:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11656:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":84388,"src":"11638:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76050,"nodeType":"ExpressionStatement","src":"11638:32:160"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76041,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76038,"src":"11621:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76042,"kind":"modifierInvocation","modifierName":{"id":76040,"name":"vaultOwner","nameLocations":["11610:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77275,"src":"11610:10:160"},"nodeType":"ModifierInvocation","src":"11610:17:160"}],"name":"disableVault","nameLocation":"11573:12:160","parameters":{"id":76039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76038,"mutability":"mutable","name":"vault","nameLocation":"11594:5:160","nodeType":"VariableDeclaration","scope":76052,"src":"11586:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76037,"name":"address","nodeType":"ElementaryTypeName","src":"11586:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11585:15:160"},"returnParameters":{"id":76043,"nodeType":"ParameterList","parameters":[],"src":"11628:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76068,"nodeType":"FunctionDefinition","src":"11683:111:160","nodes":[],"body":{"id":76067,"nodeType":"Block","src":"11746:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76064,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"11781:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76060,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"11756:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11756:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11774:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":84341,"src":"11756:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":76065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11756:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76066,"nodeType":"ExpressionStatement","src":"11756:31:160"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76057,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"11739:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76058,"kind":"modifierInvocation","modifierName":{"id":76056,"name":"vaultOwner","nameLocations":["11728:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77275,"src":"11728:10:160"},"nodeType":"ModifierInvocation","src":"11728:17:160"}],"name":"enableVault","nameLocation":"11692:11:160","parameters":{"id":76055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76054,"mutability":"mutable","name":"vault","nameLocation":"11712:5:160","nodeType":"VariableDeclaration","scope":76068,"src":"11704:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76053,"name":"address","nodeType":"ElementaryTypeName","src":"11704:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11703:15:160"},"returnParameters":{"id":76059,"nodeType":"ParameterList","parameters":[],"src":"11746:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76116,"nodeType":"FunctionDefinition","src":"11800:355:160","nodes":[],"body":{"id":76115,"nodeType":"Block","src":"11867:288:160","nodes":[],"statements":[{"assignments":[76078],"declarations":[{"constant":false,"id":76078,"mutability":"mutable","name":"$","nameLocation":"11893:1:160","nodeType":"VariableDeclaration","scope":76115,"src":"11877:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76077,"nodeType":"UserDefinedTypeName","pathNode":{"id":76076,"name":"Storage","nameLocations":["11877:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"11877:7:160"},"referencedDeclaration":73928,"src":"11877:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76081,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76079,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"11897:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11897:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11877:30:160"},{"assignments":[null,76083],"declarations":[null,{"constant":false,"id":76083,"mutability":"mutable","name":"disabledTime","nameLocation":"11927:12:160","nodeType":"VariableDeclaration","scope":76115,"src":"11920:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76082,"name":"uint48","nodeType":"ElementaryTypeName","src":"11920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76089,"initialValue":{"arguments":[{"id":76087,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76070,"src":"11961:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76084,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76078,"src":"11943:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11945:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"11943:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11952:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84447,"src":"11943:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11943:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11917:50:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76090,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"11982:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11998:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11982:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76093,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"12003:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":76094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12008:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"12003:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12003:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76096,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"12022:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76097,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76078,"src":"12037:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12039:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"12037:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12022:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12003:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11982:73:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76106,"nodeType":"IfStatement","src":"11978:138:160","trueBody":{"id":76105,"nodeType":"Block","src":"12057:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76102,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73764,"src":"12078:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76104,"nodeType":"RevertStatement","src":"12071:34:160"}]}},{"expression":{"arguments":[{"id":76112,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76070,"src":"12142:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76107,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76078,"src":"12126:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12128:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"12126:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12135:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56927,"src":"12126:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":76113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12126:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76114,"nodeType":"ExpressionStatement","src":"12126:22:160"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76073,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76070,"src":"11860:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76074,"kind":"modifierInvocation","modifierName":{"id":76072,"name":"vaultOwner","nameLocations":["11849:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":77275,"src":"11849:10:160"},"nodeType":"ModifierInvocation","src":"11849:17:160"}],"name":"unregisterVault","nameLocation":"11809:15:160","parameters":{"id":76071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76070,"mutability":"mutable","name":"vault","nameLocation":"11833:5:160","nodeType":"VariableDeclaration","scope":76116,"src":"11825:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76069,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11824:15:160"},"returnParameters":{"id":76075,"nodeType":"ParameterList","parameters":[],"src":"11867:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76312,"nodeType":"FunctionDefinition","src":"12161:1642:160","nodes":[],"body":{"id":76311,"nodeType":"Block","src":"12260:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76127,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12278:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12294:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12278:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76130,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73836,"src":"12297:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12297:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76126,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12270:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12270:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76133,"nodeType":"ExpressionStatement","src":"12270:64:160"},{"assignments":[76138,76141],"declarations":[{"constant":false,"id":76138,"mutability":"mutable","name":"activeOperators","nameLocation":"12363:15:160","nodeType":"VariableDeclaration","scope":76311,"src":"12346:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76136,"name":"address","nodeType":"ElementaryTypeName","src":"12346:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76137,"nodeType":"ArrayTypeName","src":"12346:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76141,"mutability":"mutable","name":"stakes","nameLocation":"12397:6:160","nodeType":"VariableDeclaration","scope":76311,"src":"12380:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76139,"name":"uint256","nodeType":"ElementaryTypeName","src":"12380:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76140,"nodeType":"ArrayTypeName","src":"12380:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":76145,"initialValue":{"arguments":[{"id":76143,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"12433:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76142,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76455,"src":"12407:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint48) view returns (address[] memory,uint256[] memory)"}},"id":76144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12407:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12345:91:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76146,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"12451:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12467:6:160","memberName":"length","nodeType":"MemberAccess","src":"12451:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76148,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"12477:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12451:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76153,"nodeType":"IfStatement","src":"12447:92:160","trueBody":{"id":76152,"nodeType":"Block","src":"12492:47:160","statements":[{"expression":{"id":76150,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"12513:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76125,"id":76151,"nodeType":"Return","src":"12506:22:160"}]}},{"assignments":[76155],"declarations":[{"constant":false,"id":76155,"mutability":"mutable","name":"n","nameLocation":"12591:1:160","nodeType":"VariableDeclaration","scope":76311,"src":"12583:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76154,"name":"uint256","nodeType":"ElementaryTypeName","src":"12583:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76158,"initialValue":{"expression":{"id":76156,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"12595:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12611:6:160","memberName":"length","nodeType":"MemberAccess","src":"12595:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12583:34:160"},{"body":{"id":76236,"nodeType":"Block","src":"12659:336:160","statements":[{"body":{"id":76234,"nodeType":"Block","src":"12713:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76183,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"12735:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76185,"indexExpression":{"id":76184,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12742:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12735:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":76186,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"12747:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76190,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76187,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12754:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12758:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12754:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12747:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12735:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76233,"nodeType":"IfStatement","src":"12731:240:160","trueBody":{"id":76232,"nodeType":"Block","src":"12762:209:160","statements":[{"expression":{"id":76210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76192,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"12785:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76194,"indexExpression":{"id":76193,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12792:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12785:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76195,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"12796:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76199,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76196,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12803:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12807:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12803:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12796:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76200,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12784:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76201,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"12814:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76205,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76202,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12821:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12825:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12821:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12814:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":76206,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"12829:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76208,"indexExpression":{"id":76207,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12836:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12829:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":76209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12813:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12784:55:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76211,"nodeType":"ExpressionStatement","src":"12784:55:160"},{"expression":{"id":76230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":76212,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"12862:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76214,"indexExpression":{"id":76213,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12878:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12862:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76215,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"12882:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76219,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76216,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12898:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12902:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12898:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12882:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76220,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12861:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":76221,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"12909:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76225,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76222,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12925:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":76223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12929:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12925:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12909:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":76226,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"12933:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76228,"indexExpression":{"id":76227,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12949:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12933:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76229,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12908:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12861:91:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76231,"nodeType":"ExpressionStatement","src":"12861:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76173,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12693:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76174,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"12697:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12701:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12697:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76177,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12705:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12697:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12693:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76235,"initializationExpression":{"assignments":[76170],"declarations":[{"constant":false,"id":76170,"mutability":"mutable","name":"j","nameLocation":"12686:1:160","nodeType":"VariableDeclaration","scope":76235,"src":"12678:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76169,"name":"uint256","nodeType":"ElementaryTypeName","src":"12678:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76172,"initialValue":{"hexValue":"30","id":76171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12690:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12678:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12708:3:160","subExpression":{"id":76180,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76170,"src":"12708:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76182,"nodeType":"ExpressionStatement","src":"12708:3:160"},"nodeType":"ForStatement","src":"12673:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76163,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12647:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76164,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"12651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12647:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76237,"initializationExpression":{"assignments":[76160],"declarations":[{"constant":false,"id":76160,"mutability":"mutable","name":"i","nameLocation":"12640:1:160","nodeType":"VariableDeclaration","scope":76237,"src":"12632:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76159,"name":"uint256","nodeType":"ElementaryTypeName","src":"12632:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76162,"initialValue":{"hexValue":"30","id":76161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12644:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12632:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12654:3:160","subExpression":{"id":76166,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"12654:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76168,"nodeType":"ExpressionStatement","src":"12654:3:160"},"nodeType":"ForStatement","src":"12627:368:160"},{"assignments":[76239],"declarations":[{"constant":false,"id":76239,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13070:14:160","nodeType":"VariableDeclaration","scope":76311,"src":"13062:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76238,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76241,"initialValue":{"hexValue":"31","id":76240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13087:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13062:26:160"},{"assignments":[76243],"declarations":[{"constant":false,"id":76243,"mutability":"mutable","name":"lastStake","nameLocation":"13106:9:160","nodeType":"VariableDeclaration","scope":76311,"src":"13098:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76242,"name":"uint256","nodeType":"ElementaryTypeName","src":"13098:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76249,"initialValue":{"baseExpression":{"id":76244,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"13118:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76248,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76245,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13125:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13141:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13125:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13118:25:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13098:45:160"},{"body":{"id":76273,"nodeType":"Block","src":"13218:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76261,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"13236:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76263,"indexExpression":{"id":76262,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76251,"src":"13243:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13236:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76264,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76243,"src":"13249:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13236:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76268,"nodeType":"IfStatement","src":"13232:66:160","trueBody":{"id":76267,"nodeType":"Block","src":"13260:38:160","statements":[{"id":76266,"nodeType":"Break","src":"13278:5:160"}]}},{"expression":{"id":76271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76269,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76239,"src":"13311:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13329:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13311:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76272,"nodeType":"ExpressionStatement","src":"13311:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76251,"src":"13185:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76255,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"13189:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13205:6:160","memberName":"length","nodeType":"MemberAccess","src":"13189:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13185:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76274,"initializationExpression":{"assignments":[76251],"declarations":[{"constant":false,"id":76251,"mutability":"mutable","name":"i","nameLocation":"13166:1:160","nodeType":"VariableDeclaration","scope":76274,"src":"13158:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76250,"name":"uint256","nodeType":"ElementaryTypeName","src":"13158:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76253,"initialValue":{"id":76252,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13170:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13158:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13213:3:160","subExpression":{"id":76258,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76251,"src":"13213:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76260,"nodeType":"ExpressionStatement","src":"13213:3:160"},"nodeType":"ForStatement","src":"13153:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76275,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76239,"src":"13355:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":76276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13372:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13355:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76307,"nodeType":"IfStatement","src":"13351:316:160","trueBody":{"id":76306,"nodeType":"Block","src":"13375:292:160","statements":[{"assignments":[76279],"declarations":[{"constant":false,"id":76279,"mutability":"mutable","name":"randomIndex","nameLocation":"13486:11:160","nodeType":"VariableDeclaration","scope":76306,"src":"13478:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76278,"name":"uint256","nodeType":"ElementaryTypeName","src":"13478:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76291,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":76285,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"13535:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":76283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13518:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13522:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"13518:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13518:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":76282,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13508:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13508:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13500:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76280,"name":"uint256","nodeType":"ElementaryTypeName","src":"13500:7:160","typeDescriptions":{}}},"id":76288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13500:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":76289,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76239,"src":"13543:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13500:57:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13478:79:160"},{"expression":{"id":76304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76292,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"13571:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76296,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76293,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13587:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13603:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13587:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13571:34:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76297,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"13608:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76303,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76298,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"13624:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76299,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76279,"src":"13640:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13624:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13654:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13624:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13608:48:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13571:85:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76305,"nodeType":"ExpressionStatement","src":"13571:85:160"}]}},{"AST":{"nativeSrc":"13702:62:160","nodeType":"YulBlock","src":"13702:62:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13723:15:160","nodeType":"YulIdentifier","src":"13723:15:160"},{"name":"maxValidators","nativeSrc":"13740:13:160","nodeType":"YulIdentifier","src":"13740:13:160"}],"functionName":{"name":"mstore","nativeSrc":"13716:6:160","nodeType":"YulIdentifier","src":"13716:6:160"},"nativeSrc":"13716:38:160","nodeType":"YulFunctionCall","src":"13716:38:160"},"nativeSrc":"13716:38:160","nodeType":"YulExpressionStatement","src":"13716:38:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76138,"isOffset":false,"isSlot":false,"src":"13723:15:160","valueSize":1},{"declaration":76120,"isOffset":false,"isSlot":false,"src":"13740:13:160","valueSize":1}],"flags":["memory-safe"],"id":76308,"nodeType":"InlineAssembly","src":"13677:87:160"},{"expression":{"id":76309,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"13781:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":76125,"id":76310,"nodeType":"Return","src":"13774:22:160"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12170:14:160","parameters":{"id":76121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76118,"mutability":"mutable","name":"ts","nameLocation":"12192:2:160","nodeType":"VariableDeclaration","scope":76312,"src":"12185:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76117,"name":"uint48","nodeType":"ElementaryTypeName","src":"12185:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76120,"mutability":"mutable","name":"maxValidators","nameLocation":"12204:13:160","nodeType":"VariableDeclaration","scope":76312,"src":"12196:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76119,"name":"uint256","nodeType":"ElementaryTypeName","src":"12196:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12184:34:160"},"returnParameters":{"id":76125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76312,"src":"12242:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76122,"name":"address","nodeType":"ElementaryTypeName","src":"12242:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76123,"nodeType":"ArrayTypeName","src":"12242:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12241:18:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76353,"nodeType":"FunctionDefinition","src":"13809:372:160","nodes":[],"body":{"id":76352,"nodeType":"Block","src":"13923:258:160","nodes":[],"statements":[{"assignments":[76325,76327],"declarations":[{"constant":false,"id":76325,"mutability":"mutable","name":"enabledTime","nameLocation":"13941:11:160","nodeType":"VariableDeclaration","scope":76352,"src":"13934:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76324,"name":"uint48","nodeType":"ElementaryTypeName","src":"13934:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76327,"mutability":"mutable","name":"disabledTime","nameLocation":"13961:12:160","nodeType":"VariableDeclaration","scope":76352,"src":"13954:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76326,"name":"uint48","nodeType":"ElementaryTypeName","src":"13954:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76334,"initialValue":{"arguments":[{"id":76332,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76314,"src":"14007:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76328,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"13977:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13988:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"13977:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13998:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":84447,"src":"13977:29:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":76333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13977:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13933:83:160"},{"condition":{"id":76340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14030:44:160","subExpression":{"arguments":[{"id":76336,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76325,"src":"14044:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76337,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76327,"src":"14057:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76338,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76316,"src":"14071:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76335,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76740,"src":"14031:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14031:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76344,"nodeType":"IfStatement","src":"14026:83:160","trueBody":{"id":76343,"nodeType":"Block","src":"14076:33:160","statements":[{"expression":{"hexValue":"30","id":76341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14097:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":76323,"id":76342,"nodeType":"Return","src":"14090:8:160"}]}},{"expression":{"id":76350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76345,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76322,"src":"14119:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76347,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76314,"src":"14161:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76348,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76316,"src":"14171:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76346,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76711,"src":"14127:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14119:55:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76351,"nodeType":"ExpressionStatement","src":"14119:55:160"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76319,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76316,"src":"13895:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76320,"kind":"modifierInvocation","modifierName":{"id":76318,"name":"validTimestamp","nameLocations":["13880:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77169,"src":"13880:14:160"},"nodeType":"ModifierInvocation","src":"13880:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13818:18:160","parameters":{"id":76317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76314,"mutability":"mutable","name":"operator","nameLocation":"13845:8:160","nodeType":"VariableDeclaration","scope":76353,"src":"13837:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76313,"name":"address","nodeType":"ElementaryTypeName","src":"13837:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76316,"mutability":"mutable","name":"ts","nameLocation":"13862:2:160","nodeType":"VariableDeclaration","scope":76353,"src":"13855:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76315,"name":"uint48","nodeType":"ElementaryTypeName","src":"13855:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13836:29:160"},"returnParameters":{"id":76323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76322,"mutability":"mutable","name":"stake","nameLocation":"13916:5:160","nodeType":"VariableDeclaration","scope":76353,"src":"13908:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76321,"name":"uint256","nodeType":"ElementaryTypeName","src":"13908:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13907:15:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76455,"nodeType":"FunctionDefinition","src":"14224:940:160","nodes":[],"body":{"id":76454,"nodeType":"Block","src":"14405:759:160","nodes":[],"statements":[{"assignments":[76369],"declarations":[{"constant":false,"id":76369,"mutability":"mutable","name":"$","nameLocation":"14431:1:160","nodeType":"VariableDeclaration","scope":76454,"src":"14415:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76368,"nodeType":"UserDefinedTypeName","pathNode":{"id":76367,"name":"Storage","nameLocations":["14415:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"14415:7:160"},"referencedDeclaration":73928,"src":"14415:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76372,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76370,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"14435:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14435:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14415:30:160"},{"expression":{"id":76382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76373,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76362,"src":"14455:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76377,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76369,"src":"14487:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14487:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14499:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14487:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14487:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14473:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76374,"name":"address","nodeType":"ElementaryTypeName","src":"14477:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76375,"nodeType":"ArrayTypeName","src":"14477:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14455:53:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76383,"nodeType":"ExpressionStatement","src":"14455:53:160"},{"expression":{"id":76393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76384,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76365,"src":"14518:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76388,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76369,"src":"14541:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14543:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14541:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14553:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14541:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14541:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14527:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":76385,"name":"uint256","nodeType":"ElementaryTypeName","src":"14531:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76386,"nodeType":"ArrayTypeName","src":"14531:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":76392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14527:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14518:44:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76394,"nodeType":"ExpressionStatement","src":"14518:44:160"},{"assignments":[76396],"declarations":[{"constant":false,"id":76396,"mutability":"mutable","name":"operatorIdx","nameLocation":"14581:11:160","nodeType":"VariableDeclaration","scope":76454,"src":"14573:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76395,"name":"uint256","nodeType":"ElementaryTypeName","src":"14573:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76398,"initialValue":{"hexValue":"30","id":76397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14595:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14573:23:160"},{"body":{"id":76451,"nodeType":"Block","src":"14654:369:160","statements":[{"assignments":[76412,76414,76416],"declarations":[{"constant":false,"id":76412,"mutability":"mutable","name":"operator","nameLocation":"14677:8:160","nodeType":"VariableDeclaration","scope":76451,"src":"14669:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76411,"name":"address","nodeType":"ElementaryTypeName","src":"14669:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76414,"mutability":"mutable","name":"enabled","nameLocation":"14694:7:160","nodeType":"VariableDeclaration","scope":76451,"src":"14687:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76413,"name":"uint48","nodeType":"ElementaryTypeName","src":"14687:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76416,"mutability":"mutable","name":"disabled","nameLocation":"14710:8:160","nodeType":"VariableDeclaration","scope":76451,"src":"14703:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76415,"name":"uint48","nodeType":"ElementaryTypeName","src":"14703:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76422,"initialValue":{"arguments":[{"id":76420,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"14746:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76417,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76369,"src":"14722:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14724:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14722:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14734:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84423,"src":"14722:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14722:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14668:80:160"},{"condition":{"id":76428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14767:36:160","subExpression":{"arguments":[{"id":76424,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"14781:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76425,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76416,"src":"14790:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76426,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76355,"src":"14800:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76423,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76740,"src":"14768:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14768:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76431,"nodeType":"IfStatement","src":"14763:83:160","trueBody":{"id":76430,"nodeType":"Block","src":"14805:41:160","statements":[{"id":76429,"nodeType":"Continue","src":"14823:8:160"}]}},{"expression":{"id":76436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76432,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76362,"src":"14860:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76434,"indexExpression":{"id":76433,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76396,"src":"14876:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14860:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76435,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14891:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14860:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76437,"nodeType":"ExpressionStatement","src":"14860:39:160"},{"expression":{"id":76445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76438,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76365,"src":"14913:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":76440,"indexExpression":{"id":76439,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76396,"src":"14920:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14913:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76442,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76412,"src":"14969:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76443,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76355,"src":"14979:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76441,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76711,"src":"14935:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":76444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14935:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14913:69:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76446,"nodeType":"ExpressionStatement","src":"14913:69:160"},{"expression":{"id":76449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76447,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76396,"src":"14996:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":76448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15011:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14996:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76450,"nodeType":"ExpressionStatement","src":"14996:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76402,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"14623:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76403,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76369,"src":"14627:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14629:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"14627:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14639:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"14627:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14627:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14623:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76452,"initializationExpression":{"assignments":[76400],"declarations":[{"constant":false,"id":76400,"mutability":"mutable","name":"i","nameLocation":"14620:1:160","nodeType":"VariableDeclaration","scope":76452,"src":"14612:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76399,"name":"uint256","nodeType":"ElementaryTypeName","src":"14612:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76401,"nodeType":"VariableDeclarationStatement","src":"14612:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14649:3:160","subExpression":{"id":76408,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"14651:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76410,"nodeType":"ExpressionStatement","src":"14649:3:160"},"nodeType":"ForStatement","src":"14607:416:160"},{"AST":{"nativeSrc":"15058:100:160","nodeType":"YulBlock","src":"15058:100:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15079:15:160","nodeType":"YulIdentifier","src":"15079:15:160"},{"name":"operatorIdx","nativeSrc":"15096:11:160","nodeType":"YulIdentifier","src":"15096:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15072:6:160","nodeType":"YulIdentifier","src":"15072:6:160"},"nativeSrc":"15072:36:160","nodeType":"YulFunctionCall","src":"15072:36:160"},"nativeSrc":"15072:36:160","nodeType":"YulExpressionStatement","src":"15072:36:160"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15128:6:160","nodeType":"YulIdentifier","src":"15128:6:160"},{"name":"operatorIdx","nativeSrc":"15136:11:160","nodeType":"YulIdentifier","src":"15136:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15121:6:160","nodeType":"YulIdentifier","src":"15121:6:160"},"nativeSrc":"15121:27:160","nodeType":"YulFunctionCall","src":"15121:27:160"},"nativeSrc":"15121:27:160","nodeType":"YulExpressionStatement","src":"15121:27:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":76362,"isOffset":false,"isSlot":false,"src":"15079:15:160","valueSize":1},{"declaration":76396,"isOffset":false,"isSlot":false,"src":"15096:11:160","valueSize":1},{"declaration":76396,"isOffset":false,"isSlot":false,"src":"15136:11:160","valueSize":1},{"declaration":76365,"isOffset":false,"isSlot":false,"src":"15128:6:160","valueSize":1}],"flags":["memory-safe"],"id":76453,"nodeType":"InlineAssembly","src":"15033:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":76358,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76355,"src":"14321:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":76359,"kind":"modifierInvocation","modifierName":{"id":76357,"name":"validTimestamp","nameLocations":["14306:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":77169,"src":"14306:14:160"},"nodeType":"ModifierInvocation","src":"14306:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14233:25:160","parameters":{"id":76356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76355,"mutability":"mutable","name":"ts","nameLocation":"14266:2:160","nodeType":"VariableDeclaration","scope":76455,"src":"14259:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76354,"name":"uint48","nodeType":"ElementaryTypeName","src":"14259:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14258:11:160"},"returnParameters":{"id":76366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76362,"mutability":"mutable","name":"activeOperators","nameLocation":"14359:15:160","nodeType":"VariableDeclaration","scope":76455,"src":"14342:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76360,"name":"address","nodeType":"ElementaryTypeName","src":"14342:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76361,"nodeType":"ArrayTypeName","src":"14342:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":76365,"mutability":"mutable","name":"stakes","nameLocation":"14393:6:160","nodeType":"VariableDeclaration","scope":76455,"src":"14376:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":76363,"name":"uint256","nodeType":"ElementaryTypeName","src":"14376:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76364,"nodeType":"ArrayTypeName","src":"14376:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14341:59:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":76571,"nodeType":"FunctionDefinition","src":"15170:952:160","nodes":[],"body":{"id":76570,"nodeType":"Block","src":"15228:894:160","nodes":[],"statements":[{"assignments":[76464],"declarations":[{"constant":false,"id":76464,"mutability":"mutable","name":"$","nameLocation":"15254:1:160","nodeType":"VariableDeclaration","scope":76570,"src":"15238:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76463,"nodeType":"UserDefinedTypeName","pathNode":{"id":76462,"name":"Storage","nameLocations":["15238:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"15238:7:160"},"referencedDeclaration":73928,"src":"15238:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76467,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76465,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"15258:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15258:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15238:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76468,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15283:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15287:6:160","memberName":"sender","nodeType":"MemberAccess","src":"15283:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76470,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"15297:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15299:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"15297:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15309:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":83306,"src":"15297:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15283:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76478,"nodeType":"IfStatement","src":"15279:101:160","trueBody":{"id":76477,"nodeType":"Block","src":"15329:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76474,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73824,"src":"15350:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15350:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76476,"nodeType":"RevertStatement","src":"15343:26:160"}]}},{"body":{"id":76568,"nodeType":"Block","src":"15428:688:160","statements":[{"assignments":[76491],"declarations":[{"constant":false,"id":76491,"mutability":"mutable","name":"slashData","nameLocation":"15461:9:160","nodeType":"VariableDeclaration","scope":76568,"src":"15442:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":76490,"nodeType":"UserDefinedTypeName","pathNode":{"id":76489,"name":"SlashData","nameLocations":["15442:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15442:9:160"},"referencedDeclaration":73942,"src":"15442:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":76495,"initialValue":{"baseExpression":{"id":76492,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76459,"src":"15473:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76494,"indexExpression":{"id":76493,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"15478:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15473:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15442:38:160"},{"condition":{"id":76502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15498:41:160","subExpression":{"arguments":[{"expression":{"id":76499,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15520:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15530:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"15520:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76496,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"15499:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15501:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73924,"src":"15499:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15511:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15499:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15499:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76507,"nodeType":"IfStatement","src":"15494:110:160","trueBody":{"id":76506,"nodeType":"Block","src":"15541:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76503,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73812,"src":"15566:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15566:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76505,"nodeType":"RevertStatement","src":"15559:30:160"}]}},{"body":{"id":76566,"nodeType":"Block","src":"15668:438:160","statements":[{"assignments":[76521],"declarations":[{"constant":false,"id":76521,"mutability":"mutable","name":"vaultData","nameLocation":"15710:9:160","nodeType":"VariableDeclaration","scope":76566,"src":"15686:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":76520,"nodeType":"UserDefinedTypeName","pathNode":{"id":76519,"name":"VaultSlashData","nameLocations":["15686:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":73933,"src":"15686:14:160"},"referencedDeclaration":73933,"src":"15686:14:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":76526,"initialValue":{"baseExpression":{"expression":{"id":76522,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15722:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15732:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15722:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76525,"indexExpression":{"id":76524,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"15739:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15722:19:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15686:55:160"},{"condition":{"id":76533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15764:35:160","subExpression":{"arguments":[{"expression":{"id":76530,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"15783:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15793:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15783:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":76527,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"15765:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15767:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"15765:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15774:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"15765:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15765:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76538,"nodeType":"IfStatement","src":"15760:109:160","trueBody":{"id":76537,"nodeType":"Block","src":"15801:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76534,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"15830:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15830:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76536,"nodeType":"RevertStatement","src":"15823:27:160"}]}},{"assignments":[76540],"declarations":[{"constant":false,"id":76540,"mutability":"mutable","name":"slasher","nameLocation":"15895:7:160","nodeType":"VariableDeclaration","scope":76566,"src":"15887:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76539,"name":"address","nodeType":"ElementaryTypeName","src":"15887:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76547,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76542,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"15912:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15922:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73930,"src":"15912:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76541,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"15905:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15929:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"15905:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15905:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15887:51:160"},{"expression":{"arguments":[{"expression":{"id":76552,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"16012:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16014:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"16012:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76554,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"16026:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16036:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73935,"src":"16026:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76556,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"16046:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73933_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":76557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16056:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":73932,"src":"16046:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":76558,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"16064:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16074:2:160","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":73937,"src":"16064:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16088:1:160","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":76561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16078:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76560,"name":"bytes","nodeType":"ElementaryTypeName","src":"16082:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76549,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76540,"src":"15969:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76548,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"15956:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15999:12:160","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":66489,"src":"15956:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256,uint48,bytes memory) external returns (uint256)"}},"id":76564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15956:135:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76565,"nodeType":"ExpressionStatement","src":"15956:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76511,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"15634:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":76512,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76491,"src":"15638:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":76513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15648:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73941,"src":"15638:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73933_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15655:6:160","memberName":"length","nodeType":"MemberAccess","src":"15638:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15634:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76567,"initializationExpression":{"assignments":[76509],"declarations":[{"constant":false,"id":76509,"mutability":"mutable","name":"j","nameLocation":"15631:1:160","nodeType":"VariableDeclaration","scope":76567,"src":"15623:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76508,"name":"uint256","nodeType":"ElementaryTypeName","src":"15623:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76510,"nodeType":"VariableDeclarationStatement","src":"15623:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15663:3:160","subExpression":{"id":76516,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76509,"src":"15665:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76518,"nodeType":"ExpressionStatement","src":"15663:3:160"},"nodeType":"ForStatement","src":"15618:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76482,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"15406:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76483,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76459,"src":"15410:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":76484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15415:6:160","memberName":"length","nodeType":"MemberAccess","src":"15410:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15406:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76569,"initializationExpression":{"assignments":[76480],"declarations":[{"constant":false,"id":76480,"mutability":"mutable","name":"i","nameLocation":"15403:1:160","nodeType":"VariableDeclaration","scope":76569,"src":"15395:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76479,"name":"uint256","nodeType":"ElementaryTypeName","src":"15395:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76481,"nodeType":"VariableDeclarationStatement","src":"15395:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15423:3:160","subExpression":{"id":76486,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"15425:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76488,"nodeType":"ExpressionStatement","src":"15423:3:160"},"nodeType":"ForStatement","src":"15390:726:160"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15179:12:160","parameters":{"id":76460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76459,"mutability":"mutable","name":"data","nameLocation":"15213:4:160","nodeType":"VariableDeclaration","scope":76571,"src":"15192:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":76457,"nodeType":"UserDefinedTypeName","pathNode":{"id":76456,"name":"SlashData","nameLocations":["15192:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"15192:9:160"},"referencedDeclaration":73942,"src":"15192:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":76458,"nodeType":"ArrayTypeName","src":"15192:11:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15191:27:160"},"returnParameters":{"id":76461,"nodeType":"ParameterList","parameters":[],"src":"15228:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76640,"nodeType":"FunctionDefinition","src":"16128:528:160","nodes":[],"body":{"id":76639,"nodeType":"Block","src":"16195:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76578,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16209:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16213:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16209:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76580,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"16223:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16223:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16234:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"16223:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16244:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":83308,"src":"16223:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16209:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76589,"nodeType":"IfStatement","src":"16205:108:160","trueBody":{"id":76588,"nodeType":"Block","src":"16263:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76585,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"16284:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16284:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76587,"nodeType":"RevertStatement","src":"16277:25:160"}]}},{"body":{"id":76637,"nodeType":"Block","src":"16364:286:160","statements":[{"assignments":[76602],"declarations":[{"constant":false,"id":76602,"mutability":"mutable","name":"slash","nameLocation":"16403:5:160","nodeType":"VariableDeclaration","scope":76637,"src":"16378:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":76601,"nodeType":"UserDefinedTypeName","pathNode":{"id":76600,"name":"SlashIdentifier","nameLocations":["16378:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16378:15:160"},"referencedDeclaration":73947,"src":"16378:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":76606,"initialValue":{"baseExpression":{"id":76603,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76575,"src":"16411:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76605,"indexExpression":{"id":76604,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76591,"src":"16419:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16411:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16378:43:160"},{"condition":{"id":76614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16440:40:160","subExpression":{"arguments":[{"expression":{"id":76611,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76602,"src":"16468:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16474:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16468:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76607,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"16441:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16452:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16441:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16459:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56967,"src":"16441:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":76613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16441:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76619,"nodeType":"IfStatement","src":"16436:106:160","trueBody":{"id":76618,"nodeType":"Block","src":"16482:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76615,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"16507:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16507:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76617,"nodeType":"RevertStatement","src":"16500:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":76629,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76602,"src":"16613:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16619:5:160","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":73946,"src":"16613:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":76633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16636:1:160","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":76632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16626:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76631,"name":"bytes","nodeType":"ElementaryTypeName","src":"16630:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16626:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":76622,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76602,"src":"16576:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":76623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16582:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73944,"src":"16576:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76621,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"16569:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16589:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"16569:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16569:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76620,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"16556:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":76627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":76628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16600:12:160","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":66499,"src":"16556:56:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":76635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:83:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76636,"nodeType":"ExpressionStatement","src":"16556:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76591,"src":"16339:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76594,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76575,"src":"16343:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16351:6:160","memberName":"length","nodeType":"MemberAccess","src":"16343:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16339:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76638,"initializationExpression":{"assignments":[76591],"declarations":[{"constant":false,"id":76591,"mutability":"mutable","name":"i","nameLocation":"16336:1:160","nodeType":"VariableDeclaration","scope":76638,"src":"16328:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76590,"name":"uint256","nodeType":"ElementaryTypeName","src":"16328:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76592,"nodeType":"VariableDeclarationStatement","src":"16328:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16359:3:160","subExpression":{"id":76597,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76591,"src":"16361:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76599,"nodeType":"ExpressionStatement","src":"16359:3:160"},"nodeType":"ForStatement","src":"16323:327:160"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16137:12:160","parameters":{"id":76576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76575,"mutability":"mutable","name":"slashes","nameLocation":"16177:7:160","nodeType":"VariableDeclaration","scope":76640,"src":"16150:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":76573,"nodeType":"UserDefinedTypeName","pathNode":{"id":76572,"name":"SlashIdentifier","nameLocations":["16150:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"16150:15:160"},"referencedDeclaration":73947,"src":"16150:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":76574,"nodeType":"ArrayTypeName","src":"16150:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16149:36:160"},"returnParameters":{"id":76577,"nodeType":"ParameterList","parameters":[],"src":"16195:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76711,"nodeType":"FunctionDefinition","src":"16662:556:160","nodes":[],"body":{"id":76710,"nodeType":"Block","src":"16771:447:160","nodes":[],"statements":[{"assignments":[76651],"declarations":[{"constant":false,"id":76651,"mutability":"mutable","name":"$","nameLocation":"16797:1:160","nodeType":"VariableDeclaration","scope":76710,"src":"16781:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76650,"nodeType":"UserDefinedTypeName","pathNode":{"id":76649,"name":"Storage","nameLocations":["16781:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"16781:7:160"},"referencedDeclaration":73928,"src":"16781:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76654,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76652,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"16801:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16801:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16781:30:160"},{"body":{"id":76708,"nodeType":"Block","src":"16865:347:160","statements":[{"assignments":[76668,76670,76672],"declarations":[{"constant":false,"id":76668,"mutability":"mutable","name":"vault","nameLocation":"16888:5:160","nodeType":"VariableDeclaration","scope":76708,"src":"16880:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76667,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76670,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16902:16:160","nodeType":"VariableDeclaration","scope":76708,"src":"16895:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76669,"name":"uint48","nodeType":"ElementaryTypeName","src":"16895:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76672,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16927:17:160","nodeType":"VariableDeclaration","scope":76708,"src":"16920:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76671,"name":"uint48","nodeType":"ElementaryTypeName","src":"16920:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76678,"initialValue":{"arguments":[{"id":76676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76656,"src":"16969:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":76673,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76651,"src":"16948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16950:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16948:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16957:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":84423,"src":"16948:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":76677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16948:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16879:92:160"},{"condition":{"id":76684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16990:54:160","subExpression":{"arguments":[{"id":76680,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76670,"src":"17004:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76681,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76672,"src":"17022:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":76682,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76644,"src":"17041:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76679,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76740,"src":"16991:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":76683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16991:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76687,"nodeType":"IfStatement","src":"16986:101:160","trueBody":{"id":76686,"nodeType":"Block","src":"17046:41:160","statements":[{"id":76685,"nodeType":"Continue","src":"17064:8:160"}]}},{"expression":{"id":76706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76688,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76647,"src":"17101:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":76697,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76651,"src":"17160:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17162:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"17160:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76699,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76642,"src":"17174:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76700,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76644,"src":"17184:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":76703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17198:1:160","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":76702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17188:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76701,"name":"bytes","nodeType":"ElementaryTypeName","src":"17192:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17188:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76691,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76668,"src":"17132:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76690,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"17125:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17139:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"17125:23:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17125:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76689,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"17110:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:7:160","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":65467,"src":"17110:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint48,bytes memory) view external returns (uint256)"}},"id":76705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17110:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17101:100:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76707,"nodeType":"ExpressionStatement","src":"17101:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76658,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76656,"src":"16837:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":76659,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76651,"src":"16841:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16843:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73927,"src":"16841:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56867_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":76661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16850:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56982,"src":"16841:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56867_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56867_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":76662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16841:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16837:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76709,"initializationExpression":{"assignments":[76656],"declarations":[{"constant":false,"id":76656,"mutability":"mutable","name":"i","nameLocation":"16834:1:160","nodeType":"VariableDeclaration","scope":76709,"src":"16826:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76655,"name":"uint256","nodeType":"ElementaryTypeName","src":"16826:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76657,"nodeType":"VariableDeclarationStatement","src":"16826:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16860:3:160","subExpression":{"id":76664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76656,"src":"16862:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76666,"nodeType":"ExpressionStatement","src":"16860:3:160"},"nodeType":"ForStatement","src":"16821:391:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16671:33:160","parameters":{"id":76645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76642,"mutability":"mutable","name":"operator","nameLocation":"16713:8:160","nodeType":"VariableDeclaration","scope":76711,"src":"16705:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76641,"name":"address","nodeType":"ElementaryTypeName","src":"16705:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76644,"mutability":"mutable","name":"ts","nameLocation":"16730:2:160","nodeType":"VariableDeclaration","scope":76711,"src":"16723:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76643,"name":"uint48","nodeType":"ElementaryTypeName","src":"16723:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16704:29:160"},"returnParameters":{"id":76648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76647,"mutability":"mutable","name":"stake","nameLocation":"16764:5:160","nodeType":"VariableDeclaration","scope":76711,"src":"16756:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76646,"name":"uint256","nodeType":"ElementaryTypeName","src":"16756:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16755:15:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76740,"nodeType":"FunctionDefinition","src":"17224:208:160","nodes":[],"body":{"id":76739,"nodeType":"Block","src":"17326:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76722,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76713,"src":"17343:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17358:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17343:16:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76725,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76713,"src":"17363:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":76726,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76717,"src":"17378:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17363:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76729,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76715,"src":"17385:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17401:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17385:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76732,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76715,"src":"17406:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":76733,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76717,"src":"17422:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17406:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17385:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":76736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17384:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17343:82:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":76721,"id":76738,"nodeType":"Return","src":"17336:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17233:12:160","parameters":{"id":76718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76713,"mutability":"mutable","name":"enabledTime","nameLocation":"17253:11:160","nodeType":"VariableDeclaration","scope":76740,"src":"17246:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76712,"name":"uint48","nodeType":"ElementaryTypeName","src":"17246:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76715,"mutability":"mutable","name":"disabledTime","nameLocation":"17273:12:160","nodeType":"VariableDeclaration","scope":76740,"src":"17266:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76714,"name":"uint48","nodeType":"ElementaryTypeName","src":"17266:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":76717,"mutability":"mutable","name":"ts","nameLocation":"17294:2:160","nodeType":"VariableDeclaration","scope":76740,"src":"17287:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76716,"name":"uint48","nodeType":"ElementaryTypeName","src":"17287:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17245:52:160"},"returnParameters":{"id":76721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76740,"src":"17320:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76719,"name":"bool","nodeType":"ElementaryTypeName","src":"17320:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17319:6:160"},"scope":77296,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76757,"nodeType":"FunctionDefinition","src":"17477:154:160","nodes":[],"body":{"id":76756,"nodeType":"Block","src":"17533:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76745,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"17547:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17563:1:160","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":76747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17555:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76746,"name":"address","nodeType":"ElementaryTypeName","src":"17555:7:160","typeDescriptions":{}}},"id":76749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17555:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17547:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76755,"nodeType":"IfStatement","src":"17543:82:160","trueBody":{"id":76754,"nodeType":"Block","src":"17567:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76751,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73779,"src":"17588:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17588:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76753,"nodeType":"RevertStatement","src":"17581:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17486:19:160","parameters":{"id":76743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76742,"mutability":"mutable","name":"hook","nameLocation":"17514:4:160","nodeType":"VariableDeclaration","scope":76757,"src":"17506:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76741,"name":"address","nodeType":"ElementaryTypeName","src":"17506:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17505:14:160"},"returnParameters":{"id":76744,"nodeType":"ParameterList","parameters":[],"src":"17533:0:160"},"scope":77296,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76845,"nodeType":"FunctionDefinition","src":"17637:2002:160","nodes":[],"body":{"id":76844,"nodeType":"Block","src":"17695:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76764,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"17713:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17715:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"17713:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17729:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17713:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76768,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73839,"src":"17732:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17732:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17705:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17705:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76771,"nodeType":"ExpressionStatement","src":"17705:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76773,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"18102:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18104:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18102:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":76775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18129:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":76776,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"18133:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18135:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73893,"src":"18133:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18129:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18102:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76780,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73842,"src":"18148:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18148:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76772,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18094:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18094:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76783,"nodeType":"ExpressionStatement","src":"18094:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76785,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"18377:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18379:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"18377:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76787,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"18402:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18404:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18402:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18377:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76790,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73845,"src":"18427:48:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18427:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76784,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18369:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18369:109:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76793,"nodeType":"ExpressionStatement","src":"18369:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76795,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"18665:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18667:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"18665:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":76797,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"18687:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18689:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"18687:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18665:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76800,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73848,"src":"18712:45:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18712:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76794,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18657:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18657:103:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76803,"nodeType":"ExpressionStatement","src":"18657:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76805,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"18840:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18842:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"18840:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18860:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18840:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76809,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73851,"src":"18863:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18863:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76804,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18832:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18832:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76812,"nodeType":"ExpressionStatement","src":"18832:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76814,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"19112:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19114:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19112:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19139:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19112:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76818,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73854,"src":"19142:43:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19142:45:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76813,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19104:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19104:84:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76821,"nodeType":"ExpressionStatement","src":"19104:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76823,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"19219:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19221:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"19219:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76825,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"19239:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19241:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"19239:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:44:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":76828,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"19267:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19269:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"19267:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19219:71:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76831,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73857,"src":"19304:40:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19304:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76822,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19198:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19198:158:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76834,"nodeType":"ExpressionStatement","src":"19198:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76836,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76760,"src":"19561:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19563:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"19561:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":76838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19592:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19561:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76840,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73860,"src":"19595:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19595:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19553:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19553:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76843,"nodeType":"ExpressionStatement","src":"19553:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17646:16:160","parameters":{"id":76761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76760,"mutability":"mutable","name":"$","nameLocation":"17679:1:160","nodeType":"VariableDeclaration","scope":76845,"src":"17663:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76759,"nodeType":"UserDefinedTypeName","pathNode":{"id":76758,"name":"Storage","nameLocations":["17663:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"17663:7:160"},"referencedDeclaration":73928,"src":"17663:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17662:19:160"},"returnParameters":{"id":76762,"nodeType":"ParameterList","parameters":[],"src":"17695:0:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77112,"nodeType":"FunctionDefinition","src":"19687:2572:160","nodes":[],"body":{"id":77111,"nodeType":"Block","src":"19735:2524:160","nodes":[],"statements":[{"assignments":[76852],"declarations":[{"constant":false,"id":76852,"mutability":"mutable","name":"$","nameLocation":"19761:1:160","nodeType":"VariableDeclaration","scope":77111,"src":"19745:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76851,"nodeType":"UserDefinedTypeName","pathNode":{"id":76850,"name":"Storage","nameLocations":["19745:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"19745:7:160"},"referencedDeclaration":73928,"src":"19745:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76855,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76853,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"19765:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19765:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19745:30:160"},{"condition":{"id":76864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19790:54:160","subExpression":{"arguments":[{"id":76862,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"19837:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":76857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"19801:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19803:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"19801:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19813:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":83292,"src":"19801:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76856,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"19791:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":76860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":76861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19828:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"19791:45:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":76863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76869,"nodeType":"IfStatement","src":"19786:109:160","trueBody":{"id":76868,"nodeType":"Block","src":"19846:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76865,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73752,"src":"19867:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19867:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76867,"nodeType":"RevertStatement","src":"19860:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76871,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"19927:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76870,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65208,"src":"19909:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$65208_$","typeString":"type(contract IMigratableEntity)"}},"id":76872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$65208","typeString":"contract IMigratableEntity"}},"id":76873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19935:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":65189,"src":"19909:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19909:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76875,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"19948:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19950:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73907,"src":"19948:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19909:64:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76882,"nodeType":"IfStatement","src":"19905:128:160","trueBody":{"id":76881,"nodeType":"Block","src":"19975:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76878,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"19996:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19996:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76880,"nodeType":"RevertStatement","src":"19989:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76884,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"20054:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76883,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20047:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20062:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":66904,"src":"20047:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20047:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76888,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"20078:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20080:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73915,"src":"20078:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20047:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76895,"nodeType":"IfStatement","src":"20043:100:160","trueBody":{"id":76894,"nodeType":"Block","src":"20092:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76891,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"20113:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20113:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76893,"nodeType":"RevertStatement","src":"20106:26:160"}]}},{"assignments":[76897],"declarations":[{"constant":false,"id":76897,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20188:18:160","nodeType":"VariableDeclaration","scope":77111,"src":"20181:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76896,"name":"uint48","nodeType":"ElementaryTypeName","src":"20181:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76903,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76899,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"20216:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76898,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20209:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20224:13:160","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":66946,"src":"20209:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20209:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20181:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76904,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76897,"src":"20253:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76905,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"20274:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20276:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73895,"src":"20274:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20253:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76912,"nodeType":"IfStatement","src":"20249:107:160","trueBody":{"id":76911,"nodeType":"Block","src":"20299:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76908,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73755,"src":"20320:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20320:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76910,"nodeType":"RevertStatement","src":"20313:32:160"}]}},{"condition":{"id":76918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20403:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76914,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"20411:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76913,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20404:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20419:22:160","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":66922,"src":"20404:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20404:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76923,"nodeType":"IfStatement","src":"20399:103:160","trueBody":{"id":76922,"nodeType":"Block","src":"20445:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76919,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"20466:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20466:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76921,"nodeType":"RevertStatement","src":"20459:32:160"}]}},{"assignments":[76926],"declarations":[{"constant":false,"id":76926,"mutability":"mutable","name":"delegator","nameLocation":"20527:9:160","nodeType":"VariableDeclaration","scope":77111,"src":"20512:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"},"typeName":{"id":76925,"nodeType":"UserDefinedTypeName","pathNode":{"id":76924,"name":"IBaseDelegator","nameLocations":["20512:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":65506,"src":"20512:14:160"},"referencedDeclaration":65506,"src":"20512:14:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":76934,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76929,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"20561:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76928,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20554:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20569:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66916,"src":"20554:24:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20554:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76927,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20539:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20539:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20512:69:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":76937,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"20621:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20623:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"20621:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76935,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"20595:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20605:15:160","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65453,"src":"20595:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":76939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20595:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":76942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20643:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76941,"name":"uint256","nodeType":"ElementaryTypeName","src":"20643:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76940,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20638:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20638:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20652:3:160","memberName":"max","nodeType":"MemberAccess","src":"20638:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76958,"nodeType":"IfStatement","src":"20591:158:160","trueBody":{"id":76957,"nodeType":"Block","src":"20657:92:160","statements":[{"expression":{"arguments":[{"id":76949,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75104,"src":"20700:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":76952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20725:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":76951,"name":"uint256","nodeType":"ElementaryTypeName","src":"20725:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":76950,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20720:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20720:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":76954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20734:3:160","memberName":"max","nodeType":"MemberAccess","src":"20720:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76946,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"20671:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20681:18:160","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":65485,"src":"20671:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":76955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20671:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76956,"nodeType":"ExpressionStatement","src":"20671:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76961,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"20793:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}],"id":76960,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"20778:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$65506_$","typeString":"type(contract IBaseDelegator)"}},"id":76962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$65506","typeString":"contract IBaseDelegator"}},"id":76963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20804:4:160","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":65445,"src":"20778:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20778:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76959,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"20758:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76966,"nodeType":"ExpressionStatement","src":"20758:53:160"},{"condition":{"id":76972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20857:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76968,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"20865:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76967,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20858:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20873:20:160","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":66934,"src":"20858:35:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20858:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76977,"nodeType":"IfStatement","src":"20853:99:160","trueBody":{"id":76976,"nodeType":"Block","src":"20897:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76973,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73788,"src":"20918:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20918:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76975,"nodeType":"RevertStatement","src":"20911:30:160"}]}},{"assignments":[76979],"declarations":[{"constant":false,"id":76979,"mutability":"mutable","name":"slasher","nameLocation":"20970:7:160","nodeType":"VariableDeclaration","scope":77111,"src":"20962:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76978,"name":"address","nodeType":"ElementaryTypeName","src":"20962:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76985,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76981,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"20987:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76980,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"20980:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":76982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":76983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20995:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66928,"src":"20980:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20980:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20962:42:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76987,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76979,"src":"21026:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76986,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65100,"src":"21018:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$65100_$","typeString":"type(contract IEntity)"}},"id":76988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$65100","typeString":"contract IEntity"}},"id":76989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21035:4:160","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":65093,"src":"21018:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21018:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76991,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"21045:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21047:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73909,"src":"21045:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21018:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76998,"nodeType":"IfStatement","src":"21014:111:160","trueBody":{"id":76997,"nodeType":"Block","src":"21068:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76994,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"21089:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21089:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76996,"nodeType":"RevertStatement","src":"21082:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77000,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76979,"src":"21152:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76999,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21139:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21161:12:160","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":66186,"src":"21139:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":77003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21139:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77008,"nodeType":"IfStatement","src":"21135:98:160","trueBody":{"id":77007,"nodeType":"Block","src":"21177:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77004,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"21198:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21198:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77006,"nodeType":"RevertStatement","src":"21191:31:160"}]}},{"assignments":[77010],"declarations":[{"constant":false,"id":77010,"mutability":"mutable","name":"vetoDuration","nameLocation":"21250:12:160","nodeType":"VariableDeclaration","scope":77111,"src":"21243:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77009,"name":"uint48","nodeType":"ElementaryTypeName","src":"21243:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77016,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77012,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76979,"src":"21278:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77011,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21265:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21287:12:160","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":66421,"src":"21265:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":77015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21265:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21243:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77017,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77010,"src":"21315:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77018,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"21330:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21332:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73901,"src":"21330:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21315:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77025,"nodeType":"IfStatement","src":"21311:92:160","trueBody":{"id":77024,"nodeType":"Block","src":"21349:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77021,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73797,"src":"21370:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21370:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77023,"nodeType":"RevertStatement","src":"21363:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77026,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77010,"src":"21417:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":77027,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"21432:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73903,"src":"21432:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:39:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77030,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76897,"src":"21459:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21417:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77036,"nodeType":"IfStatement","src":"21413:119:160","trueBody":{"id":77035,"nodeType":"Block","src":"21479:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77032,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73800,"src":"21500:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21500:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77034,"nodeType":"RevertStatement","src":"21493:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77038,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76979,"src":"21559:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77037,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21546:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21568:22:160","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":66451,"src":"21546:44:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":77041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21546:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":77042,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"21595:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21597:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73905,"src":"21595:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21546:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77049,"nodeType":"IfStatement","src":"21542:139:160","trueBody":{"id":77048,"nodeType":"Block","src":"21624:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77045,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73818,"src":"21645:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21645:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77047,"nodeType":"RevertStatement","src":"21638:32:160"}]}},{"assignments":[77051],"declarations":[{"constant":false,"id":77051,"mutability":"mutable","name":"resolver","nameLocation":"21699:8:160","nodeType":"VariableDeclaration","scope":77111,"src":"21691:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77050,"name":"address","nodeType":"ElementaryTypeName","src":"21691:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77063,"initialValue":{"arguments":[{"expression":{"id":77056,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"21741:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21743:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73911,"src":"21741:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":77060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21765:1:160","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":77059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21755:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77058,"name":"bytes","nodeType":"ElementaryTypeName","src":"21759:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21755:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77053,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76979,"src":"21723:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77052,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21710:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21732:8:160","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":66473,"src":"21710:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) view external returns (address)"}},"id":77062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21710:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21691:77:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77064,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77051,"src":"21782:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21802:1:160","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":77066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21794:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77065,"name":"address","nodeType":"ElementaryTypeName","src":"21794:7:160","typeDescriptions":{}}},"id":77068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21794:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21782:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77085,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77051,"src":"21934:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":77086,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"21946:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21948:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21946:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21958:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83310,"src":"21946:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21934:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77094,"nodeType":"IfStatement","src":"21930:147:160","trueBody":{"id":77093,"nodeType":"Block","src":"21972:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77090,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73815,"src":"22048:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77092,"nodeType":"RevertStatement","src":"22041:25:160"}]}},"id":77095,"nodeType":"IfStatement","src":"21778:299:160","trueBody":{"id":77084,"nodeType":"Block","src":"21806:118:160","statements":[{"expression":{"arguments":[{"id":77074,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75104,"src":"21854:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":77075,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"21874:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21876:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"21874:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21886:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":83310,"src":"21874:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":77080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21910:1:160","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":77079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21900:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":77078,"name":"bytes","nodeType":"ElementaryTypeName","src":"21904:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":77081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21900:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":77071,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76979,"src":"21833:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77070,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66518,"src":"21820:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$66518_$","typeString":"type(contract IVetoSlasher)"}},"id":77072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$66518","typeString":"contract IVetoSlasher"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21842:11:160","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":66517,"src":"21820:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":77082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77083,"nodeType":"ExpressionStatement","src":"21820:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77097,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76847,"src":"22170:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77096,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66856,"src":"22163:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66856_$","typeString":"type(contract IVault)"}},"id":77098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66856","typeString":"contract IVault"}},"id":77099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22178:6:160","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":66910,"src":"22163:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22163:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22198:1:160","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":77102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22190:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77101,"name":"address","nodeType":"ElementaryTypeName","src":"22190:7:160","typeDescriptions":{}}},"id":77104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22190:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22163:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77110,"nodeType":"IfStatement","src":"22159:94:160","trueBody":{"id":77109,"nodeType":"Block","src":"22202:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77106,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73782,"src":"22223:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22223:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77108,"nodeType":"RevertStatement","src":"22216:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19696:14:160","parameters":{"id":76848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76847,"mutability":"mutable","name":"_vault","nameLocation":"19719:6:160","nodeType":"VariableDeclaration","scope":77112,"src":"19711:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76846,"name":"address","nodeType":"ElementaryTypeName","src":"19711:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19710:16:160"},"returnParameters":{"id":76849,"nodeType":"ParameterList","parameters":[],"src":"19735:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77159,"nodeType":"FunctionDefinition","src":"22265:482:160","nodes":[],"body":{"id":77158,"nodeType":"Block","src":"22344:403:160","nodes":[],"statements":[{"condition":{"id":77128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22358:72:160","subExpression":{"arguments":[{"id":77126,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77116,"src":"22421:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77120,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"22369:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22369:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22380:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73921,"src":"22369:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":77123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22390:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":83302,"src":"22369:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77119,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65332,"src":"22359:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$65332_$","typeString":"type(contract IRegistry)"}},"id":77124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$65332","typeString":"contract IRegistry"}},"id":77125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22412:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"22359:61:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":77127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22359:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77133,"nodeType":"IfStatement","src":"22354:135:160","trueBody":{"id":77132,"nodeType":"Block","src":"22432:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77129,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73830,"src":"22453:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22453:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77131,"nodeType":"RevertStatement","src":"22446:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77135,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77116,"src":"22525:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77134,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22503:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22535:5:160","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":71927,"src":"22503:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77139,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77114,"src":"22546:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22503:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77145,"nodeType":"IfStatement","src":"22499:114:160","trueBody":{"id":77144,"nodeType":"Block","src":"22554:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77141,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73833,"src":"22575:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22575:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77143,"nodeType":"RevertStatement","src":"22568:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":77152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77147,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77116,"src":"22649:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77146,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71992,"src":"22627:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71992_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":77148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71992","typeString":"contract IDefaultStakerRewards"}},"id":77149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22659:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":72044,"src":"22627:39:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":77150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22627:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":77151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22672:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22627:46:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77157,"nodeType":"IfStatement","src":"22623:118:160","trueBody":{"id":77156,"nodeType":"Block","src":"22675:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77153,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73806,"src":"22696:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22696:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77155,"nodeType":"RevertStatement","src":"22689:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22274:22:160","parameters":{"id":77117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77114,"mutability":"mutable","name":"_vault","nameLocation":"22305:6:160","nodeType":"VariableDeclaration","scope":77159,"src":"22297:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77113,"name":"address","nodeType":"ElementaryTypeName","src":"22297:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77116,"mutability":"mutable","name":"_rewards","nameLocation":"22321:8:160","nodeType":"VariableDeclaration","scope":77159,"src":"22313:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77115,"name":"address","nodeType":"ElementaryTypeName","src":"22313:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22296:34:160"},"returnParameters":{"id":77118,"nodeType":"ParameterList","parameters":[],"src":"22344:0:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77169,"nodeType":"ModifierDefinition","src":"22884:82:160","nodes":[],"body":{"id":77168,"nodeType":"Block","src":"22919:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77164,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77161,"src":"22945:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":77163,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77216,"src":"22929:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":77165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22929:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77166,"nodeType":"ExpressionStatement","src":"22929:19:160"},{"id":77167,"nodeType":"PlaceholderStatement","src":"22958:1:160"}]},"name":"validTimestamp","nameLocation":"22893:14:160","parameters":{"id":77162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77161,"mutability":"mutable","name":"ts","nameLocation":"22915:2:160","nodeType":"VariableDeclaration","scope":77169,"src":"22908:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77160,"name":"uint48","nodeType":"ElementaryTypeName","src":"22908:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22907:11:160"},"virtual":false,"visibility":"internal"},{"id":77216,"nodeType":"FunctionDefinition","src":"22972:408:160","nodes":[],"body":{"id":77215,"nodeType":"Block","src":"23022:358:160","nodes":[],"statements":[{"assignments":[77176],"declarations":[{"constant":false,"id":77176,"mutability":"mutable","name":"$","nameLocation":"23048:1:160","nodeType":"VariableDeclaration","scope":77215,"src":"23032:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77175,"nodeType":"UserDefinedTypeName","pathNode":{"id":77174,"name":"Storage","nameLocations":["23032:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23032:7:160"},"referencedDeclaration":73928,"src":"23032:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77179,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77177,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77229,"src":"23052:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23052:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23032:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77180,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"23076:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77181,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23082:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23087:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23082:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23082:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23076:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77189,"nodeType":"IfStatement","src":"23072:80:160","trueBody":{"id":77188,"nodeType":"Block","src":"23100:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77185,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23121:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23121:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77187,"nodeType":"RevertStatement","src":"23114:27:160"}]}},{"assignments":[77191],"declarations":[{"constant":false,"id":77191,"mutability":"mutable","name":"gracePeriod","nameLocation":"23169:11:160","nodeType":"VariableDeclaration","scope":77215,"src":"23162:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77190,"name":"uint48","nodeType":"ElementaryTypeName","src":"23162:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":77202,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77192,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77176,"src":"23183:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23185:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23183:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77194,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77176,"src":"23207:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23209:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23207:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23183:42:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":77199,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77176,"src":"23252:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23254:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73899,"src":"23252:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":77201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23183:87:160","trueExpression":{"expression":{"id":77197,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77176,"src":"23228:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23230:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73897,"src":"23228:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23162:108:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":77205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77203,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77171,"src":"23284:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77204,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77191,"src":"23289:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77206,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60343,"src":"23304:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$60343_$","typeString":"type(library Time)"}},"id":77207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23309:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":60091,"src":"23304:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":77208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23304:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23284:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77214,"nodeType":"IfStatement","src":"23280:94:160","trueBody":{"id":77213,"nodeType":"Block","src":"23322:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77210,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73770,"src":"23343:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23343:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77212,"nodeType":"RevertStatement","src":"23336:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22981:15:160","parameters":{"id":77172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77171,"mutability":"mutable","name":"ts","nameLocation":"23004:2:160","nodeType":"VariableDeclaration","scope":77216,"src":"22997:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77170,"name":"uint48","nodeType":"ElementaryTypeName","src":"22997:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22996:11:160"},"returnParameters":{"id":77173,"nodeType":"ParameterList","parameters":[],"src":"23022:0:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77229,"nodeType":"FunctionDefinition","src":"23386:201:160","nodes":[],"body":{"id":77228,"nodeType":"Block","src":"23456:131:160","nodes":[],"statements":[{"assignments":[77223],"declarations":[{"constant":false,"id":77223,"mutability":"mutable","name":"slot","nameLocation":"23474:4:160","nodeType":"VariableDeclaration","scope":77228,"src":"23466:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23466:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77226,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77224,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77241,"src":"23481:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":77225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23481:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23466:32:160"},{"AST":{"nativeSrc":"23534:47:160","nodeType":"YulBlock","src":"23534:47:160","statements":[{"nativeSrc":"23548:23:160","nodeType":"YulAssignment","src":"23548:23:160","value":{"name":"slot","nativeSrc":"23567:4:160","nodeType":"YulIdentifier","src":"23567:4:160"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23548:15:160","nodeType":"YulIdentifier","src":"23548:15:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77220,"isOffset":false,"isSlot":true,"src":"23548:15:160","suffix":"slot","valueSize":1},{"declaration":77223,"isOffset":false,"isSlot":false,"src":"23567:4:160","valueSize":1}],"flags":["memory-safe"],"id":77227,"nodeType":"InlineAssembly","src":"23509:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23395:8:160","parameters":{"id":77217,"nodeType":"ParameterList","parameters":[],"src":"23403:2:160"},"returnParameters":{"id":77221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77220,"mutability":"mutable","name":"middleware","nameLocation":"23444:10:160","nodeType":"VariableDeclaration","scope":77229,"src":"23428:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77219,"nodeType":"UserDefinedTypeName","pathNode":{"id":77218,"name":"Storage","nameLocations":["23428:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"23428:7:160"},"referencedDeclaration":73928,"src":"23428:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23427:28:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77241,"nodeType":"FunctionDefinition","src":"23593:128:160","nodes":[],"body":{"id":77240,"nodeType":"Block","src":"23651:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":77236,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75098,"src":"23695:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77234,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23668:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23680:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23668:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23668:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23709:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23668:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77233,"id":77239,"nodeType":"Return","src":"23661:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23602:15:160","parameters":{"id":77230,"nodeType":"ParameterList","parameters":[],"src":"23617:2:160"},"returnParameters":{"id":77233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77241,"src":"23642:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23642:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23641:9:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77265,"nodeType":"FunctionDefinition","src":"23727:200:160","nodes":[],"body":{"id":77264,"nodeType":"Block","src":"23795:132:160","nodes":[],"statements":[{"assignments":[77249],"declarations":[{"constant":false,"id":77249,"mutability":"mutable","name":"slot","nameLocation":"23813:4:160","nodeType":"VariableDeclaration","scope":77264,"src":"23805:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23805:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77254,"initialValue":{"arguments":[{"id":77252,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77243,"src":"23847:9:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":77250,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"23820:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":77251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23835:11:160","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"23820:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":77253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23820:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23805:52:160"},{"expression":{"id":77262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":77258,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75098,"src":"23894:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77255,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"23867:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23879:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"23867:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":77259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23867:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":77260,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23908:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"23867:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77261,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77249,"src":"23916:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23867:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77263,"nodeType":"ExpressionStatement","src":"23867:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":77246,"kind":"modifierInvocation","modifierName":{"id":77245,"name":"onlyOwner","nameLocations":["23785:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"23785:9:160"},"nodeType":"ModifierInvocation","src":"23785:9:160"}],"name":"_setStorageSlot","nameLocation":"23736:15:160","parameters":{"id":77244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77243,"mutability":"mutable","name":"namespace","nameLocation":"23766:9:160","nodeType":"VariableDeclaration","scope":77265,"src":"23752:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":77242,"name":"string","nodeType":"ElementaryTypeName","src":"23752:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23751:25:160"},"returnParameters":{"id":77247,"nodeType":"ParameterList","parameters":[],"src":"23795:0:160"},"scope":77296,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77275,"nodeType":"ModifierDefinition","src":"23933:81:160","nodes":[],"body":{"id":77274,"nodeType":"Block","src":"23968:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":77270,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77267,"src":"23990:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77269,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77295,"src":"23978:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23978:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77272,"nodeType":"ExpressionStatement","src":"23978:18:160"},{"id":77273,"nodeType":"PlaceholderStatement","src":"24006:1:160"}]},"name":"vaultOwner","nameLocation":"23942:10:160","parameters":{"id":77268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77267,"mutability":"mutable","name":"vault","nameLocation":"23961:5:160","nodeType":"VariableDeclaration","scope":77275,"src":"23953:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77266,"name":"address","nodeType":"ElementaryTypeName","src":"23953:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23952:15:160"},"virtual":false,"visibility":"internal"},{"id":77295,"nodeType":"FunctionDefinition","src":"24020:181:160","nodes":[],"body":{"id":77294,"nodeType":"Block","src":"24070:131:160","nodes":[],"statements":[{"condition":{"id":77288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24084:62:160","subExpression":{"arguments":[{"id":77284,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75101,"src":"24115:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77285,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24135:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24139:6:160","memberName":"sender","nodeType":"MemberAccess","src":"24135:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":77281,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77277,"src":"24100:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77280,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44539,"src":"24085:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$44539_$","typeString":"type(contract IAccessControl)"}},"id":77282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$44539","typeString":"contract IAccessControl"}},"id":77283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24107:7:160","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":44506,"src":"24085:29:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":77287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24085:61:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77293,"nodeType":"IfStatement","src":"24080:115:160","trueBody":{"id":77292,"nodeType":"Block","src":"24148:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77289,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73767,"src":"24169:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24169:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77291,"nodeType":"RevertStatement","src":"24162:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24029:11:160","parameters":{"id":77278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77277,"mutability":"mutable","name":"vault","nameLocation":"24049:5:160","nodeType":"VariableDeclaration","scope":77295,"src":"24041:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77276,"name":"address","nodeType":"ElementaryTypeName","src":"24041:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24040:15:160"},"returnParameters":{"id":77279,"nodeType":"ParameterList","parameters":[],"src":"24070:0:160"},"scope":77296,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":75073,"name":"IMiddleware","nameLocations":["2399:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"2399:11:160"},"id":75074,"nodeType":"InheritanceSpecifier","src":"2399:11:160"},{"baseName":{"id":75075,"name":"OwnableUpgradeable","nameLocations":["2412:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"2412:18:160"},"id":75076,"nodeType":"InheritanceSpecifier","src":"2412:18:160"},{"baseName":{"id":75077,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2432:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"2432:35:160"},"id":75078,"nodeType":"InheritanceSpecifier","src":"2432:35:160"},{"baseName":{"id":75079,"name":"UUPSUpgradeable","nameLocations":["2469:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"2469:15:160"},"id":75080,"nodeType":"InheritanceSpecifier","src":"2469:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77296,46243,44833,43943,42322,43484,42590,74131],"name":"Middleware","nameLocation":"2385:10:160","scope":77297,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,53880,55791,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860,84194,84197,84200],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":160} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Mirror.json b/ethexe/ethereum/abi/Mirror.json index 5872113a7fa..ec0acb6d11f 100644 --- a/ethexe/ethereum/abi/Mirror.json +++ b/ethexe/ethereum/abi/Mirror.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUpWithPermit","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"},{"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":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"transitionHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"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":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"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":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"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"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"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":"ReplyCallFailed","inputs":[{"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":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"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":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"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":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008d57601f611d8138819003918201601f19168301916001600160401b038311848410176100915780849260209460405283398101031261008d57516001600160a01b038116810361008d57608052604051611cdb90816100a682396080518181816102390152818161031d015281816113e90152818161148a0152818161152d01526115e30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:41123:161:-:0;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;7624:16;;2621:41123;;;;;;;;7624:16;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;-1:-1:-1;2621:41123:161;;;;;-1:-1:-1;2621:41123:161","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:41123:161:-:0;;;;;;;;;-1:-1:-1;9882:69:161;;:::i;:::-;42692:9;:13;;:37;;;-1:-1:-1;42688:1048:161;;;42799:33;2621:41123;;;-1:-1:-1;;;;;42692:9:161;2621:41123;;;42799:33;2621:41123;42688:1048;2621:41123;42854:7;2621:41123;;;;42853:8;:35;;;42688:1048;42849:887;;;8798:67;;:::i;:::-;8593:5;2621:41123;8593:9;;;:38;;;42849:887;2621:41123;;;-1:-1:-1;;;;;42692:9:161;2621:41123;19408:6;;;:::i;:::-;8593:5;2621:41123;19629:154;;;;42704:1;19629:154;;;;;42704:1;19629:154;2621:41123;;;;;;;8593:5;2621:41123;8593:5;2621:41123;19815:70;2621:41123;;;;;;;;;;;;;;;;;;42704:1;2621:41123;;;;42704:1;2621:41123;;;;;;;;;;;;;;;;;;;;43377:88;43522:14;;19629:154;2621:41123;;;19844:10;;19815:70;;;;42704:1;43552:115;2621:41123;42704:1;43552:115;2621:41123;;;;42704:1;2621:41123;;;;;42704:1;2621:41123;;;;;42704:1;2621:41123;;42704:1;2621:41123;8593:38;-1:-1:-1;42854:7:161;2621:41123;-1:-1:-1;;;;;2621:41123:161;8606:10;:25;8593:38;;42849:887;43704:21;;;42704:1;43704:21;2621:41123;42704:1;43704:21;42853:35;2621:41123;42884:4;2621:41123;42865:23;;42853:35;;42692:37;2621:41123;;42709:20;42692:37;;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3228:31;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;9882:69;;:::i;:::-;9363:6;2621:41123;;;;;;;20666:37;;20418:21;-1:-1:-1;;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;20666:37;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;:::i;:::-;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;2621:41123;-1:-1:-1;;;;;14371:14:161;14378:6;14371:14;:::i;:::-;2621:41123;14371:79;;;;;2621:41123;;14371:79;2621:41123;;;;;;;;;14371:79;;14393:10;2621:41123;14371:79;;2621:41123;14413:4;2621:41123;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14371:79;;;;2621:41123;14487:6;-1:-1:-1;;;;;;;;;;;14487:6:161;;2621:41123;14487:6;;:::i;:::-;2621:41123;;;;;14510:39;2621:41123;;14371:79;;14487:6;14371:79;;2621:41123;14371:79;;-1:-1:-1;;;;;;;;;;;14371:79:161;;:::i;:::-;;;;;;;;;2621:41123;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;9503:63;;:::i;:::-;16181:11;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;811:66:53;2621:41123:161;;-1:-1:-1;;;;;2621:41123:161;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;16181:11:161;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;16631:30:161;16627:124;;2621:41123;;;16627:124;2621:41123;-1:-1:-1;;;;;;;;;;;2621:41123:161;;;;;;16682:58;2621:41123;;811:66:53;-1:-1:-1;;;811:66:53;;2621:41123:161;811:66:53;;2621:41123:161;-1:-1:-1;;;2621:41123:161;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;3558:20;2621:41123;;;;;;;;;;;;;;;;;;;;4050:26;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;2621:41123;;;;;;12953:46;2621:41123;12988:10;12953:46;;2621:41123;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;12480:64;2621:41123;;;;;;:::i;:::-;9882:69;;;;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;-1:-1:-1;;;;;12419:9:161;2621:41123;12457:6;;;;:::i;:::-;12480:64;2621:41123;;12515:10;;;;2621:41123;;;12480:64;;:::i;:::-;;;;2621:41123;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;;;;;;;2621:41123:161;;;:::i;:::-;9882:69;;:::i;:::-;8798:67;;:::i;:::-;10354:5;;;:::i;:::-;-1:-1:-1;;;;;2621:41123:161;;;;;;13429:39;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:18;2621:41123;;;;;;;;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;8593:5;2621:41123;8593:9;;;:38;;;2621:41123;;;;-1:-1:-1;;;;;19370:9:161;2621:41123;19408:6;;;;:::i;:::-;8593:5;2621:41123;19629:154;;;;;;;;;;;2621:41123;;;;;;;;;;;;;8593:5;19815:70;2621:41123;;8593:5;2621:41123;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;19629:154;2621:41123;;;19844:10;;19815:70;;;;2621:41123;;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;2621:41123:161;;;;;8593:38;-1:-1:-1;8620:11:161;2621:41123;-1:-1:-1;;;;;2621:41123:161;8606:10;:25;8593:38;;2621:41123;;;;;;;;;;;;;3940:24;2621:41123;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;9503:63;;:::i;:::-;17254:19;2621:41123;;;;17254:19;:::i;:::-;17285:4;-1:-1:-1;;;;;2621:41123:161;;;17254:36;2621:41123;;17442:38;;2621:41123;;17442:38;;:::i;:::-;17438:113;;2621:41123;;;17672:20;;2621:41123;-1:-1:-1;;2621:41123:161;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21507:35;2621:41123;;;;;;;;;21507:35;:::i;:::-;2621:41123;;;21618:3;2621:41123;;;;;;;21601:15;;;;;2621:41123;;;;;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20739:273:169;2621:41123:161;;;;17442:38;2621:41123;;;;;;;20838:15:169;;2621:41123:161;;;;;;;;;;;;;;;20739:273:169;;;;;;2621:41123:161;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;20739:273:169;;;;;;;;;;:::i;:::-;2621:41123:161;20716:306:169;;4093:83:22;;;;2621:41123:161;;;;;;;;;;;17442:38;;2621:41123;;22310:7;2621:41123;;;;;;;;22310:7;:::i;:::-;2621:41123;21586:13;;;22236:162;37118:13;2621:41123;;;;;;;;37118:13;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;;37169:26:161;2621:41123;;;;;;;;37169:26;:::i;:::-;2621:41123;37169:29;2621:41123;;;37169:34;37218:20;;2621:41123;37253:433;;;;;2621:41123;;;37301:16;2621:41123;;;;;;;;;;;;;;;;;;;;;;37301:16;:::i;:::-;2621:41123;;;:::i;:::-;;-1:-1:-1;;;;;37765:14:161;2621:41123;;;37718:20;2621:41123;;;;;;;;37718:20;:::i;:::-;2621:41123;;;;;;;37765:14;:::i;:::-;2621:41123;;37718:71;;;;;37749:7;37718:71;;;:::i;:::-;;37808:8;37804:513;;37253:433;37114:1562;22236:162;;37804:513;37859:52;37874:20;2621:41123;;;;;;;;37874:20;:::i;:::-;37896:14;2621:41123;;;;;;;;37896:14;:::i;:::-;37859:52;;:::i;:::-;37933:16;37929:125;;37804:513;38217:85;2621:41123;38233:14;2621:41123;;;;;;;;38233:14;:::i;:::-;17442:38;2621:41123;-1:-1:-1;;;;;;38275:26:161;2621:41123;;;;;;;;38275:26;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;38217:85;37804:513;;;37929:125;37978:57;37998:20;2621:41123;;;;;;;;37998:20;:::i;:::-;38020:14;2621:41123;;;;;;;;38020:14;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;37978:57;37929:125;;37253:433;2621:41123;;;;37518:153;;2621:41123;37609:16;2621:41123;;;;;;;;;;;;37609:16;:::i;:::-;37627:26;2621:41123;;;;;;;;37627:26;:::i;:::-;2621:41123;;;;;37562:32;;;;;;37518:153;;;;2621:41123;;;;;;;37518:153;;;2621:41123;;;;;;;;;;:::i;:::-;;;;;;;;;;37518:153;2621:41123;;37518:153;;;;;;:::i;:::-;37253:433;;37114:1562;38370:52;38385:20;2621:41123;;;;;;;;38385:20;:::i;38370:52::-;38440:16;38436:117;;37114:1562;38572:93;38578:16;2621:41123;;;;;;;;;;;;38578:16;:::i;:::-;38596:14;2621:41123;;;;;;;;38596:14;:::i;:::-;17442:38;2621:41123;-1:-1:-1;;;;;;38638:26:161;2621:41123;;;;;;;;38638:26;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;38572:93;;;22236:162;;38436:117;38481:57;38501:20;2621:41123;;;;;;;;38501:20;:::i;:::-;38523:14;2621:41123;;;;;;;;38523:14;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;38481:57;38436:117;;2621:41123;;;;;;;;;;;;;;;;21601:15;;;;2621:41123;21601:15;2621:41123;;;;;;;1083:131:25;;2621:41123:161;17810:23;2621:41123;;17810:23;2621:41123;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39449:33;;;;;;;:::i;:::-;39492:18;2621:41123;39526:13;2621:41123;39521:628;39556:3;39541:13;;;;;;39689:17;2621:41123;;;;;;;;;;;;;;39896:46;39911:17;2621:41123;;;;;39689:17;;;2621:41123;;39689:17;;;;;:::i;:::-;39708:11;;;;;;:::i;:::-;2621:41123;;21377:50:169;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;21377:50:169;;;;;;:::i;:::-;2621:41123:161;21367:61:169;;4093:83:22;;;2621:41123:161;39911:17;;:::i;:::-;39930:11;;;:::i;39896:46::-;39930:11;;;40022;39992:42;40022:11;;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;39992:42;39956:183;2621:41123;39526:13;;;;;;39956:183;40112:11;40078:46;40112:11;;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;40078:46;39956:183;;39541:13;;;1083:131:25;2621:41123:161;;;;17914:18;;;;;:::i;:::-;;;;2621:41123;;;;17962:21;21377:50:169;2621:41123:161;;17962:21;;:::i;:::-;8798:67;;;:::i;:::-;40643:13;2621:41123;;-1:-1:-1;;;;;;2621:41123:161;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;-1:-1:-1;;2621:41123:161;20418:21;-1:-1:-1;;;;;2621:41123:161;;20666:37;;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;20666:37;:::i;:::-;40867:8;40863:231;;17910:183;;;;2621:41123;;18194:24;2621:41123;;18194:24;2621:41123;18181:37;;;;;18177:110;;17910:183;2621:41123;;18496:18;18425:19;2621:41123;;;;18425:19;:::i;:::-;18496:18;;:::i;:::-;18528:21;21377:50:169;2621:41123:161;;18528:21;;:::i;:::-;18563:26;;2621:41123;;18563:26;;:::i;:::-;2621:41123;18603:38;17442;2621:41123;;17442:38;18603;:::i;:::-;2621:41123;;;22289:279:169;;;;2621:41123:161;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;22289:279:169;;;;;;:::i;:::-;2621:41123:161;22266:312:169;;2621:41123:161;;;;;;18177:110;2621:41123;41454:23;2621:41123;;;;;;41454:23;18177:110;;;;40863:231;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;41028:55;;;40863:231;;;;17910:183;2621:41123;-1:-1:-1;;;;;18023:21:161;2621:41123;;21377:50:169;18023:21:161;;:::i;:::-;2621:41123;;;;17910:183;;;2621:41123;;;;;;;;;17438:113;17513:26;;;2621:41123;;17513:26;;:::i;:::-;;:::i;:::-;17438:113;;2621:41123;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;;;-1:-1:-1;;2621:41123:161;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;9658:102::-;9727:6;-1:-1:-1;;;;;2621:41123:161;9713:10;:20;2621:41123;;9658:102::o;2621:41123::-;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;2621:41123:161;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2621:41123:161;;;;:::o;:::-;;;:::o;10854:215::-;-1:-1:-1;;;;;2621:41123:161;10918:10;10914:149;;10854:215;:::o;10914:149::-;10927:1;10962:6;;;;;:29;;;;:::i;:::-;;2621:41123;;;10854:215::o;2621:41123::-;;;;10927:1;2621:41123;;10927:1;2621:41123;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;10043:108::-;2621:41123;;-1:-1:-1;;;10102:24:161;;;2621:41123;10102:24;2621:41123;10110:6;-1:-1:-1;;;;;2621:41123:161;10102:24;;;;;;;-1:-1:-1;10102:24:161;;;10043:108;10101:25;2621:41123;;10043:108::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;10102:24;-1:-1:-1;2621:41123:161;10102:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2621:41123;;;;;;;;;8952:89;2621:41123;9010:6;2621:41123;;;;8952:89::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;2621:41123:161;10487:228;-1:-1:-1;;;;;2621:41123:161;10550:10;10546:163;;10487:228;:::o;10546:163::-;10598:6;;2621:41123;;10591:54;-1:-1:-1;;;;;10591:14:161;10598:6;10591:14;:::i;:::-;2621:41123;;-1:-1:-1;;;10591:54:161;;10619:10;10591:54;;;2621:41123;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;10559:1;;2621:41123;10591:54;;;;;;;10559:1;10591:54;;;10546:163;2621:41123;;;;10487:228::o;2621:41123::-;;;;10559:1;2621:41123;10591:54;10559:1;2621:41123;10591:54;;;;2621:41123;10591:54;2621:41123;10591:54;;;;;;;:::i;:::-;;;;7993:107;8058:5;2621:41123;8058:9;2621:41123;;7993:107::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;2621:41123:161;41658:182;2621:41123;;-1:-1:-1;;;41760:33:161;;2621:41123;41760:33;;2621:41123;;41760:33;;2621:41123;;-1:-1:-1;;;;;2621:41123:161;41760:33;;;;;;;-1:-1:-1;41760:33:161;;;41658:182;-1:-1:-1;;;;;;2621:41123:161;;41658:182::o;41760:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2621:41123;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;41760:33;;;;;;-1:-1:-1;41760:33:161;;863:809:22;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;2621:41123:161:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;2621:41123:161;;;;;;;:::o;23021:1125::-;23279:36;;;:::i;:::-;23278:37;23274:866;;23021:1125;:::o;23274:866::-;23585:13;;;;;:::i;:::-;23581:453;;23274:866;24053:76;;24074:20;;;;;:::i;:::-;24096:16;;;;;;:::i;:::-;24114:14;;;;;;;;:::i;:::-;2621:41123;24096:16;2621:41123;;;;;;;;;;;;24053:76;;:::i;:::-;;;;23021:1125::o;23581:453::-;23636:20;;;-1:-1:-1;23636:20:161;;;;:::i;:::-;23676:16;;;;;;;:::i;:::-;2621:41123;;;23676:16;2621:41123;;;;;;;;;;;23636:57;;23667:7;23636:57;;;:::i;:::-;;23716:8;23712:308;;23581:453;;;23712:308;23936:20;23905:68;23936:20;;:::i;:::-;23958:14;;;;;:::i;:::-;23676:16;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;23905:68;2621:41123;42082:253;;-1:-1:-1;;;;;2621:41123:161;42179:10;;42175:133;;42317:11;;42324:4;42082:253;:::o;42175:133::-;2621:41123;42223:46;;;;;42245:5;42223:46;;;:::i;:::-;;42283:14;:::o;27225:3845::-;27364:16;;;;;;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;27397:20;;;;;:::i;:::-;2621:41123;27397:38;:61;;;;27225:3845;27397:83;;;;27225:3845;27395:86;27391:129;;27560:249;;;;;27825:17;27841:1;27825:17;;;:38;;;27225:3845;27823:41;27819:84;;2943:42;;;;27841:1;2621:41123;;28044:37;;28038:83;;27841:1;28240:95;;;28906:31;28916:21;28906:31;;;:90;;;27225:3845;28906:147;;;27225:3845;28906:204;;;27225:3845;28906:265;;;27225:3845;28906:331;;;27225:3845;28906:373;;;27225:3845;28906:425;;;27225:3845;28906:465;;;27225:3845;28906:515;;;27225:3845;28906:562;;;27225:3845;28906:633;;;27225:3845;28906:687;;;27225:3845;28906:738;;;27225:3845;28891:763;28887:806;;2943:42;;;-1:-1:-1;;2943:42:161;;;27841:1;29863:21;2943:42;29863:21;:::i;:::-;29894:117;;;;;;30230:216;;;;;;;;;;27841:1;30460:17;;27841:1;;30493:83;;;;;;;;27841:1;27225:3845;:::o;30456:586::-;30612:1;30596:17;;30612:1;;30629:91;;;;27841:1;27225:3845;:::o;30592:450::-;30756:1;30740:17;;;;;;;;30736:306;30756:1;;;30773:99;;;;;;;27841:1;27225:3845;:::o;30736:306::-;30908:1;30892:17;30888:154;;30736:306;;;;;;;27841:1;27225:3845;:::o;30888:154::-;30230:216;;;30925:107;;30888:154;;;;;;;;28887:806;29670:12;;;;;2621:41123;29670:12;:::o;28906:738::-;29609:35;29619:25;29609:35;;;28906:738;;:687;29555:38;29565:28;29555:38;;;28906:687;;:633;29484:55;29494:45;29484:55;;;28906:633;;:562;29437:31;29447:21;29437:31;;;28906:562;;:515;29387:34;29397:24;29387:34;;;28906:515;;:465;29347:24;29357:14;29347:24;;;28906:465;;:425;29295:36;29305:26;29295:36;;;28906:425;;:373;29253:26;29263:16;29253:26;;;28906:373;;:331;29187:50;-1:-1:-1;;;;;;;;;;;29187:50:161;;;28906:331;;:265;29126:45;29136:35;29126:45;;;28906:265;;:204;29069:41;29079:31;29069:41;;;28906:204;;:147;29012:41;29022:31;29012:41;;;28906:147;;:90;28953:43;28963:33;28953:43;;;28906:90;;28038:83;28098:12;;;;2621:41123;28098:12;:::o;27825:38::-;27846:17;27862:1;27846:17;;;27825:38;;27391:129;27497:12;;2621:41123;27497:12;:::o;27397:83::-;27462:18;;;;27397:83;;:61;-1:-1:-1;;;;;27439:14:161;;;;;;;:::i;:::-;2621:41123;27439:19;27397:61;;","linkReferences":{},"immutableReferences":{"77308":[{"start":569,"length":32},{"start":797,"length":32},{"start":5097,"length":32},{"start":5258,"length":32},{"start":5421,"length":32},{"start":5603,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":"c6049692","exited()":"5ce6c327","inheritor()":"36a52a18","initialize(address,address,bool,uint128)":"bfa28576","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"084f443a","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"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\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"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\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"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\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"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\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"},{\"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\":\"executableBalanceTopUpWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.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 Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"transitionHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Mirror smart contract is responsible for storing the minimal state of programs on our platform and transitioning from one state to another by calling `performStateTransition(...)`. It's built on actor-model architecture, and in Ethereum, we implement this through \\\"request-response\\\" model. This means we have two types of events: - \\\"Requested\\\" events - when user calls one of the methods marked as \\\"Primary Gear logic\\\" we emit such an event, and all our nodes process it off-chain - \\\"Responded\\\" events - when we receive response from our nodes and transmit it back to Ethereum. All logic called within `performStateTransition(...)` and leading to methods marked as \\\"Private calls related to performStateTransition\\\" are such events. It's important not to confuse these two, as this is how we implement the actor model in Ethereum. Mirror economic model has two balances: - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`. This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`. - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain. It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform. You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users can use it for free. This is called the \\\"reverse-gas model\\\". Developer can also require the presence of `value` in the owned balance when calling methods in a WASM smart contract to protect their program from spam.\",\"errors\":{\"CallerNotRouter()\":[{\"details\":\"Thrown when the caller is not the `Router`.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the `Router` contract is paused and pause-protected Mirror call is attempted.\"}],\"EtherTransferToRouterFailed()\":[{\"details\":\"Thrown when the transfer of Ether to the `Router` fails.\"}],\"InitMessageNotCreated()\":[{\"details\":\"Thrown when the first (init) message is not created by the initializer.\"}],\"InitMessageNotCreatedAndCallerNotInitializer()\":[{\"details\":\"Thrown when the first (init) message is not created and the caller is not the initializer.\"}],\"ProgramExited()\":[{\"details\":\"Thrown when the program is exited and the call is attempted.\"}],\"ProgramNotExited()\":[{\"details\":\"Thrown when the program is not exited and the call is attempted.\"}],\"TransferLockedValueToInheritorExternalFailed()\":[{\"details\":\"Thrown when the transfer of locked value to the inheritor fails (in external call).\"}],\"WVaraTransferFailed()\":[{\"details\":\"Thrown when the transfer of Vara to the `Router` fails.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens.\",\"params\":{\"value\":\"The amount of tokens the user wants to top up. 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.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about new message sent from program.\"}},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about failed message call from program.\"}},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued.\",\"params\":{\"callReply\":\"Indicates whether the message is sent with callReply flag. NOTE: It's event for NODES: it requires to insert message in the program's queue.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"source\":\"Message source address.\",\"value\":\"Message value.\"}},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether.\",\"params\":{\"value\":\"The amount of Ether the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"}},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message.\",\"params\":{\"payload\":\"Reply message payload.\",\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about new reply sent from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts.\",\"params\":{\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about failed reply call from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued.\",\"params\":{\"payload\":\"The payload of the reply.\",\"repliedTo\":\"The ID of the message being replied to.\",\"source\":\"The address of the reply sender.\",\"value\":\"The value of the reply. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"}},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call\",\"params\":{\"destination\":\"The address of the destination.\",\"value\":\"The amount of value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"}},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed.\",\"params\":{\"stateHash\":\"The new state hash of the program. NOTE: It's event for USERS: it informs about state changes.\"}},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit.\",\"params\":{\"inheritor\":\"The address of the inheritor.\",\"value\":\"The amount of locked value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"}},\"ValueClaimFailed(bytes32,uint128)\":{\"details\":\"Emitted when a user fails in claiming value request and doesn't receive balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value that failed to claim. NOTE: It's event for USERS: it informs about failed value claim.\"}},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value claimed. 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.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"source\":\"The address of the claim sender. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}}},\"kind\":\"dev\",\"methods\":{\"claimValue(bytes32)\":{\"details\":\"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.\",\"params\":{\"_claimedId\":\"Message ID of the value to be claimed.\"}},\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable `Router` address.\",\"params\":{\"_router\":\"The address of the `Router` contract.\"}},\"executableBalanceTopUp(uint128)\":{\"details\":\"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\",\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"initialize(address,address,bool,uint128)\":{\"details\":\"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.\",\"params\":{\"_abiInterface\":\"The address of the ABI interface. This address will be displayed as \\\"proxy implementation\\\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.\",\"_initialExecutableBalance\":\"The initial executable balance to be transferred to the program.\",\"_initializer\":\"The address of the initializer. Only this address will be able to send the first (init) message.\",\"_isSmall\":\"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\"}},\"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))\":{\"details\":\"Performs state transition for the `Mirror` contract.\",\"params\":{\"_transition\":\"The state transition data.\"},\"returns\":{\"transitionHash\":\"The hash of the performed state transition.\"}},\"sendMessage(bytes,bool)\":{\"details\":\"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.\",\"params\":{\"_callReply\":\"Whether to set `call` flag in the reply message.\",\"_payload\":\"The payload of the message.\"},\"returns\":{\"messageId\":\"Message ID of the sent message.\"}},\"sendReply(bytes32,bytes)\":{\"details\":\"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.\",\"params\":{\"_payload\":\"The payload of the reply message.\",\"_repliedTo\":\"Message ID to which the reply is sent.\"}},\"transferLockedValueToInheritor()\":{\"details\":\"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted.\"}},\"stateVariables\":{\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events and re-remit then as Solidity events: - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit. Inheritor specifies the address to which all available program value should be transferred.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"Flag that indicates what type this `Mirror` smart contract is: - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation (which is usually more expensive in terms of gas to create). This is generally the more popular way and is the one you will most likely use if you are writing programs using the Sails framework. This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`. User writes WASM smart contract on Sails framework called \\\"\\u0421ounter\\\": - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)` and waits for the code to be validated. User also generates \\\"Solidity ABI Interface\\\" to allow incrementing counter or calling other methods within WASM smart contract. Next, we assume user uploads `CounterAbi` smart contract to Ethereum: ```solidity interface ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId); function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId); // ... other methods } contract CounterAbi is ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {} function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {} } ``` User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`, where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \\\"proxy implementation\\\", and Etherscan will think that `Mirror` has `CounterAbi` methods. User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract: `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror` to create new message and pass the Solidity call to the WASM smart contract on the Sails framework. WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`. - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation (which is usually less expensive in terms of gas to create). This case is suitable if the user develops WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the `Router` contract, which is the sole authority to modify the state of this contract and transfer funds from it. forge-lint: disable-next-item(screaming-snake-case-immutable)\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x0300beb47e6c99090a8775b919bd4c62f9ab055f43d9d8a113e040dbdc66af73\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://0a21a95ffc1959436f60a45d221568ca4d5ab53eaef3032b184986ba4aaf7f7b\",\"dweb:/ipfs/QmWCpmRUHu99EiWk2y3ZZEjbec3Bf56dfNzmkeoARhZQwG\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"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":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","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},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","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":"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":"ReplyCallFailed","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":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimFailed","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":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"},{"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":"executableBalanceTopUpWithPermit"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"transitionHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"devdoc":{"kind":"dev","methods":{"claimValue(bytes32)":{"details":"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.","params":{"_claimedId":"Message ID of the value to be claimed."}},"constructor":{"details":"Minimal constructor that only sets the immutable `Router` address.","params":{"_router":"The address of the `Router` contract."}},"executableBalanceTopUp(uint128)":{"details":"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":{"details":"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter.","_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"initialize(address,address,bool,uint128)":{"details":"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.","params":{"_abiInterface":"The address of the ABI interface. This address will be displayed as \"proxy implementation\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.","_initialExecutableBalance":"The initial executable balance to be transferred to the program.","_initializer":"The address of the initializer. Only this address will be able to send the first (init) message.","_isSmall":"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details."}},"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":{"details":"Performs state transition for the `Mirror` contract.","params":{"_transition":"The state transition data."},"returns":{"transitionHash":"The hash of the performed state transition."}},"sendMessage(bytes,bool)":{"details":"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.","params":{"_callReply":"Whether to set `call` flag in the reply message.","_payload":"The payload of the message."},"returns":{"messageId":"Message ID of the sent message."}},"sendReply(bytes32,bytes)":{"details":"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.","params":{"_payload":"The payload of the reply message.","_repliedTo":"Message ID to which the reply is sent."}},"transferLockedValueToInheritor()":{"details":"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Mirror.sol":{"keccak256":"0x0300beb47e6c99090a8775b919bd4c62f9ab055f43d9d8a113e040dbdc66af73","urls":["bzz-raw://0a21a95ffc1959436f60a45d221568ca4d5ab53eaef3032b184986ba4aaf7f7b","dweb:/ipfs/QmWCpmRUHu99EiWk2y3ZZEjbec3Bf56dfNzmkeoARhZQwG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":77311,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":77314,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77317,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":77320,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":77323,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":77326,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":78724,"exportedSymbols":{"ERC1967Utils":[45701],"Gear":[84099],"Hashes":[41483],"ICallbacks":[73742],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006],"Memory":[41257],"Mirror":[78723],"StorageSlot":[49089]},"nodeType":"SourceUnit","src":"74:43671:161","nodes":[{"id":77280,"nodeType":"PragmaDirective","src":"74:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77282,"nodeType":"ImportDirective","src":"100:84:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":45702,"symbolAliases":[{"foreign":{"id":77281,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"108:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77284,"nodeType":"ImportDirective","src":"185:74:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":77283,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"193:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77286,"nodeType":"ImportDirective","src":"260:60:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":77285,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"268:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77288,"nodeType":"ImportDirective","src":"321:73:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":77287,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"329:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77290,"nodeType":"ImportDirective","src":"395:46:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":73743,"symbolAliases":[{"foreign":{"id":77289,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"403:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77292,"nodeType":"ImportDirective","src":"442:40:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":77291,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"450:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77294,"nodeType":"ImportDirective","src":"483:40:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":77293,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"491:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77296,"nodeType":"ImportDirective","src":"524:50:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":77295,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"532:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77298,"nodeType":"ImportDirective","src":"575:44:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78724,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":77297,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"583:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78723,"nodeType":"ContractDefinition","src":"2621:41123:161","nodes":[{"id":77305,"nodeType":"VariableDeclaration","src":"2900:85:161","nodes":[],"constant":true,"documentation":{"id":77302,"nodeType":"StructuredDocumentation","src":"2654:241:161","text":" @dev Special address to which Sails contract sends messages so that Mirror can decode events\n and re-remit then as Solidity events:\n - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"2926:14:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77303,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":77304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:42:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":77308,"nodeType":"VariableDeclaration","src":"3228:31:161","nodes":[],"baseFunctions":[74295],"constant":false,"documentation":{"id":77306,"nodeType":"StructuredDocumentation","src":"2992:231:161","text":" @dev Address of the `Router` contract, which is the sole authority\n to modify the state of this contract and transfer funds from it.\n forge-lint: disable-next-item(screaming-snake-case-immutable)"},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"3253:6:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77307,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77311,"nodeType":"VariableDeclaration","src":"3324:24:161","nodes":[],"baseFunctions":[74301],"constant":false,"documentation":{"id":77309,"nodeType":"StructuredDocumentation","src":"3266:53:161","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3339:9:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3324:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77314,"nodeType":"VariableDeclaration","src":"3558:20:161","nodes":[],"baseFunctions":[74307],"constant":false,"documentation":{"id":77312,"nodeType":"StructuredDocumentation","src":"3355:198:161","text":" @dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"3573:5:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3558:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77317,"nodeType":"VariableDeclaration","src":"3668:18:161","nodes":[],"baseFunctions":[74313],"constant":false,"documentation":{"id":77315,"nodeType":"StructuredDocumentation","src":"3585:78:161","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"3680:6:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77316,"name":"bool","nodeType":"ElementaryTypeName","src":"3668:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":77320,"nodeType":"VariableDeclaration","src":"3940:24:161","nodes":[],"baseFunctions":[74319],"constant":false,"documentation":{"id":77318,"nodeType":"StructuredDocumentation","src":"3741:194:161","text":" @dev The address of the inheritor, which is set by the program on exit.\n Inheritor specifies the address to which all available program value should be transferred."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"3955:9:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77319,"name":"address","nodeType":"ElementaryTypeName","src":"3940:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77323,"nodeType":"VariableDeclaration","src":"4050:26:161","nodes":[],"baseFunctions":[74325],"constant":false,"documentation":{"id":77321,"nodeType":"StructuredDocumentation","src":"3971:74:161","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"4065:11:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77322,"name":"address","nodeType":"ElementaryTypeName","src":"4050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77326,"nodeType":"VariableDeclaration","src":"7411:12:161","nodes":[],"constant":false,"documentation":{"id":77324,"nodeType":"StructuredDocumentation","src":"4083:3323:161","text":" @dev Flag that indicates what type this `Mirror` smart contract is:\n - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation\n (which is usually more expensive in terms of gas to create). This is generally the\n more popular way and is the one you will most likely use if you are writing programs using the Sails framework.\n This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and\n new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`.\n User writes WASM smart contract on Sails framework called \"Сounter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)`\n and waits for the code to be validated.\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`,\n where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \"proxy implementation\",\n and Etherscan will think that `Mirror` has `CounterAbi` methods.\n User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract:\n `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call\n and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror`\n to create new message and pass the Solidity call to the WASM smart contract on the Sails framework.\n WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`.\n - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation\n (which is usually less expensive in terms of gas to create). This case is suitable if the user develops\n WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors\n (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`."},"mutability":"mutable","name":"isSmall","nameLocation":"7416:7:161","scope":78723,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77325,"name":"bool","nodeType":"ElementaryTypeName","src":"7411:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":77337,"nodeType":"FunctionDefinition","src":"7585:62:161","nodes":[],"body":{"id":77336,"nodeType":"Block","src":"7614:33:161","nodes":[],"statements":[{"expression":{"id":77334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77332,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"7624:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77333,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77329,"src":"7633:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7624:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77335,"nodeType":"ExpressionStatement","src":"7624:16:161"}]},"documentation":{"id":77327,"nodeType":"StructuredDocumentation","src":"7430:150:161","text":" @dev Minimal constructor that only sets the immutable `Router` address.\n @param _router The address of the `Router` contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77329,"mutability":"mutable","name":"_router","nameLocation":"7605:7:161","nodeType":"VariableDeclaration","scope":77337,"src":"7597:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77328,"name":"address","nodeType":"ElementaryTypeName","src":"7597:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7596:17:161"},"returnParameters":{"id":77331,"nodeType":"ParameterList","parameters":[],"src":"7614:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77345,"nodeType":"ModifierDefinition","src":"7804:83:161","nodes":[],"body":{"id":77344,"nodeType":"Block","src":"7836:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77340,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77358,"src":"7846:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77342,"nodeType":"ExpressionStatement","src":"7846:23:161"},{"id":77343,"nodeType":"PlaceholderStatement","src":"7879:1:161"}]},"documentation":{"id":77338,"nodeType":"StructuredDocumentation","src":"7676:123:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"7813:20:161","parameters":{"id":77339,"nodeType":"ParameterList","parameters":[],"src":"7833:2:161"},"virtual":false,"visibility":"internal"},{"id":77358,"nodeType":"FunctionDefinition","src":"7993:107:161","nodes":[],"body":{"id":77357,"nodeType":"Block","src":"8040:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77350,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"8058:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8066:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8058:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77353,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74253,"src":"8069:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77349,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8050:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8050:43:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77356,"nodeType":"ExpressionStatement","src":"8050:43:161"}]},"documentation":{"id":77346,"nodeType":"StructuredDocumentation","src":"7893:95:161","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"8002:21:161","parameters":{"id":77347,"nodeType":"ParameterList","parameters":[],"src":"8023:2:161"},"returnParameters":{"id":77348,"nodeType":"ParameterList","parameters":[],"src":"8040:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77366,"nodeType":"ModifierDefinition","src":"8267:109:161","nodes":[],"body":{"id":77365,"nodeType":"Block","src":"8312:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77361,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77384,"src":"8322:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8322:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77363,"nodeType":"ExpressionStatement","src":"8322:36:161"},{"id":77364,"nodeType":"PlaceholderStatement","src":"8368:1:161"}]},"documentation":{"id":77359,"nodeType":"StructuredDocumentation","src":"8106:156:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"8276:33:161","parameters":{"id":77360,"nodeType":"ParameterList","parameters":[],"src":"8309:2:161"},"virtual":false,"visibility":"internal"},{"id":77384,"nodeType":"FunctionDefinition","src":"8515:172:161","nodes":[],"body":{"id":77383,"nodeType":"Block","src":"8575:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77371,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"8593:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8601:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8593:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77374,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8606:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8610:6:161","memberName":"sender","nodeType":"MemberAccess","src":"8606:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77376,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"8620:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8606:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8593:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77379,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"8633:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8633:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77370,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8585:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8585:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77382,"nodeType":"ExpressionStatement","src":"8585:95:161"}]},"documentation":{"id":77367,"nodeType":"StructuredDocumentation","src":"8382:128:161","text":" @dev Internal function to check if the init message has been created before or the caller is the initializer."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"8524:34:161","parameters":{"id":77368,"nodeType":"ParameterList","parameters":[],"src":"8558:2:161"},"returnParameters":{"id":77369,"nodeType":"ParameterList","parameters":[],"src":"8575:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77392,"nodeType":"ModifierDefinition","src":"8798:67:161","nodes":[],"body":{"id":77391,"nodeType":"Block","src":"8822:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77387,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77404,"src":"8832:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8832:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77389,"nodeType":"ExpressionStatement","src":"8832:15:161"},{"id":77390,"nodeType":"PlaceholderStatement","src":"8857:1:161"}]},"documentation":{"id":77385,"nodeType":"StructuredDocumentation","src":"8693:100:161","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"8807:12:161","parameters":{"id":77386,"nodeType":"ParameterList","parameters":[],"src":"8819:2:161"},"virtual":false,"visibility":"internal"},{"id":77404,"nodeType":"FunctionDefinition","src":"8952:89:161","nodes":[],"body":{"id":77403,"nodeType":"Block","src":"8991:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9009:7:161","subExpression":{"id":77397,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"9010:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77399,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74259,"src":"9018:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9018:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9001:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9001:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77402,"nodeType":"ExpressionStatement","src":"9001:33:161"}]},"documentation":{"id":77393,"nodeType":"StructuredDocumentation","src":"8871:76:161","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"8961:13:161","parameters":{"id":77394,"nodeType":"ParameterList","parameters":[],"src":"8974:2:161"},"returnParameters":{"id":77395,"nodeType":"ParameterList","parameters":[],"src":"8991:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77412,"nodeType":"ModifierDefinition","src":"9152:67:161","nodes":[],"body":{"id":77411,"nodeType":"Block","src":"9176:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77407,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77423,"src":"9186:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77409,"nodeType":"ExpressionStatement","src":"9186:15:161"},{"id":77410,"nodeType":"PlaceholderStatement","src":"9211:1:161"}]},"documentation":{"id":77405,"nodeType":"StructuredDocumentation","src":"9047:100:161","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"9161:12:161","parameters":{"id":77406,"nodeType":"ParameterList","parameters":[],"src":"9173:2:161"},"virtual":false,"visibility":"internal"},{"id":77423,"nodeType":"FunctionDefinition","src":"9306:91:161","nodes":[],"body":{"id":77422,"nodeType":"Block","src":"9345:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77417,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"9363:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77418,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74262,"src":"9371:16:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9371:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9355:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9355:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77421,"nodeType":"ExpressionStatement","src":"9355:35:161"}]},"documentation":{"id":77413,"nodeType":"StructuredDocumentation","src":"9225:76:161","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"9315:13:161","parameters":{"id":77414,"nodeType":"ParameterList","parameters":[],"src":"9328:2:161"},"returnParameters":{"id":77415,"nodeType":"ParameterList","parameters":[],"src":"9345:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77431,"nodeType":"ModifierDefinition","src":"9503:63:161","nodes":[],"body":{"id":77430,"nodeType":"Block","src":"9525:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77426,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77445,"src":"9535:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77428,"nodeType":"ExpressionStatement","src":"9535:13:161"},{"id":77429,"nodeType":"PlaceholderStatement","src":"9558:1:161"}]},"documentation":{"id":77424,"nodeType":"StructuredDocumentation","src":"9403:95:161","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"9512:10:161","parameters":{"id":77425,"nodeType":"ParameterList","parameters":[],"src":"9522:2:161"},"virtual":false,"visibility":"internal"},{"id":77445,"nodeType":"FunctionDefinition","src":"9658:102:161","nodes":[],"body":{"id":77444,"nodeType":"Block","src":"9695:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77436,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9713:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9717:6:161","memberName":"sender","nodeType":"MemberAccess","src":"9713:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77438,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"9727:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9713:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77440,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74265,"src":"9735:15:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9735:17:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77435,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9705:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9705:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77443,"nodeType":"ExpressionStatement","src":"9705:48:161"}]},"documentation":{"id":77432,"nodeType":"StructuredDocumentation","src":"9572:81:161","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"9667:11:161","parameters":{"id":77433,"nodeType":"ParameterList","parameters":[],"src":"9678:2:161"},"returnParameters":{"id":77434,"nodeType":"ParameterList","parameters":[],"src":"9695:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77453,"nodeType":"ModifierDefinition","src":"9882:69:161","nodes":[],"body":{"id":77452,"nodeType":"Block","src":"9907:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77448,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77469,"src":"9917:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9917:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77450,"nodeType":"ExpressionStatement","src":"9917:16:161"},{"id":77451,"nodeType":"PlaceholderStatement","src":"9943:1:161"}]},"documentation":{"id":77446,"nodeType":"StructuredDocumentation","src":"9766:111:161","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"9891:13:161","parameters":{"id":77447,"nodeType":"ParameterList","parameters":[],"src":"9904:2:161"},"virtual":false,"visibility":"internal"},{"id":77469,"nodeType":"FunctionDefinition","src":"10043:108:161","nodes":[],"body":{"id":77468,"nodeType":"Block","src":"10083:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10101:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77459,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10110:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77458,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"10102:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74990_$","typeString":"type(contract IRouter)"}},"id":77460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":77461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":74753,"src":"10102:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":77462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77464,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74268,"src":"10128:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10128:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10093:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10093:51:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77467,"nodeType":"ExpressionStatement","src":"10093:51:161"}]},"documentation":{"id":77454,"nodeType":"StructuredDocumentation","src":"9957:81:161","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"10052:14:161","parameters":{"id":77455,"nodeType":"ParameterList","parameters":[],"src":"10066:2:161"},"returnParameters":{"id":77456,"nodeType":"ParameterList","parameters":[],"src":"10083:0:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77480,"nodeType":"ModifierDefinition","src":"10289:89:161","nodes":[],"body":{"id":77479,"nodeType":"Block","src":"10328:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77475,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"10354:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77474,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"10338:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10338:22:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77477,"nodeType":"ExpressionStatement","src":"10338:22:161"},{"id":77478,"nodeType":"PlaceholderStatement","src":"10370:1:161"}]},"documentation":{"id":77470,"nodeType":"StructuredDocumentation","src":"10157:127:161","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"10298:14:161","parameters":{"id":77473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77472,"mutability":"mutable","name":"value","nameLocation":"10321:5:161","nodeType":"VariableDeclaration","scope":77480,"src":"10313:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77471,"name":"uint128","nodeType":"ElementaryTypeName","src":"10313:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10312:15:161"},"virtual":false,"visibility":"internal"},{"id":77510,"nodeType":"FunctionDefinition","src":"10487:228:161","nodes":[],"body":{"id":77509,"nodeType":"Block","src":"10536:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77486,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77483,"src":"10550:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10559:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10550:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77508,"nodeType":"IfStatement","src":"10546:163:161","trueBody":{"id":77507,"nodeType":"Block","src":"10562:147:161","statements":[{"assignments":[77490],"declarations":[{"constant":false,"id":77490,"mutability":"mutable","name":"success","nameLocation":"10581:7:161","nodeType":"VariableDeclaration","scope":77507,"src":"10576:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77489,"name":"bool","nodeType":"ElementaryTypeName","src":"10576:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77500,"initialValue":{"arguments":[{"expression":{"id":77495,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10619:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10623:6:161","memberName":"sender","nodeType":"MemberAccess","src":"10619:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10631:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77498,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77483,"src":"10639:5:161","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":[{"id":77492,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10598:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77491,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78631,"src":"10591:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75006_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":77494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10606:12:161","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"10591:27:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:54:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10576:69:161"},{"expression":{"arguments":[{"id":77502,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77490,"src":"10667:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77503,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74271,"src":"10676:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10676:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77501,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10659:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77506,"nodeType":"ExpressionStatement","src":"10659:39:161"}]}}]},"documentation":{"id":77481,"nodeType":"StructuredDocumentation","src":"10384:98:161","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"10496:15:161","parameters":{"id":77484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77483,"mutability":"mutable","name":"value","nameLocation":"10520:5:161","nodeType":"VariableDeclaration","scope":77510,"src":"10512:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77482,"name":"uint128","nodeType":"ElementaryTypeName","src":"10512:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10511:15:161"},"returnParameters":{"id":77485,"nodeType":"ParameterList","parameters":[],"src":"10536:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77537,"nodeType":"FunctionDefinition","src":"10854:215:161","nodes":[],"body":{"id":77536,"nodeType":"Block","src":"10904:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77516,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"10918:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10927:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10918:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77535,"nodeType":"IfStatement","src":"10914:149:161","trueBody":{"id":77534,"nodeType":"Block","src":"10930:133:161","statements":[{"assignments":[77520,null],"declarations":[{"constant":false,"id":77520,"mutability":"mutable","name":"success","nameLocation":"10950:7:161","nodeType":"VariableDeclaration","scope":77534,"src":"10945:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77519,"name":"bool","nodeType":"ElementaryTypeName","src":"10945:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77527,"initialValue":{"arguments":[{"hexValue":"","id":77525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10988:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":77521,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"10962:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10969:4:161","memberName":"call","nodeType":"MemberAccess","src":"10962:11:161","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":77524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":77523,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"10981:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"10962:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10962:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"10944:47:161"},{"expression":{"arguments":[{"id":77529,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77520,"src":"11013:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77530,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74274,"src":"11022:27:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11022:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11005:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11005:47:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77533,"nodeType":"ExpressionStatement","src":"11005:47:161"}]}}]},"documentation":{"id":77511,"nodeType":"StructuredDocumentation","src":"10721:128:161","text":" @dev Non-zero Ether value must be transferred from source to `Router` in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"10863:16:161","parameters":{"id":77514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77513,"mutability":"mutable","name":"value","nameLocation":"10888:5:161","nodeType":"VariableDeclaration","scope":77537,"src":"10880:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77512,"name":"uint128","nodeType":"ElementaryTypeName","src":"10880:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10879:15:161"},"returnParameters":{"id":77515,"nodeType":"ParameterList","parameters":[],"src":"10904:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77555,"nodeType":"FunctionDefinition","src":"11454:216:161","nodes":[],"body":{"id":77554,"nodeType":"Block","src":"11612:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77550,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77540,"src":"11642:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77551,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77542,"src":"11652:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77549,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77922,"src":"11629:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":77552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11629:34:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77548,"id":77553,"nodeType":"Return","src":"11622:41:161"}]},"baseFunctions":[74335],"documentation":{"id":77538,"nodeType":"StructuredDocumentation","src":"11124:325:161","text":" @dev Sends message to the program.\n As result of execution, the `MessageQueueingRequested` event will be emitted.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":77545,"kind":"modifierInvocation","modifierName":{"id":77544,"name":"whenNotPaused","nameLocations":["11558:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"11558:13:161"},"nodeType":"ModifierInvocation","src":"11558:13:161"}],"name":"sendMessage","nameLocation":"11463:11:161","parameters":{"id":77543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77540,"mutability":"mutable","name":"_payload","nameLocation":"11490:8:161","nodeType":"VariableDeclaration","scope":77555,"src":"11475:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77539,"name":"bytes","nodeType":"ElementaryTypeName","src":"11475:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77542,"mutability":"mutable","name":"_callReply","nameLocation":"11505:10:161","nodeType":"VariableDeclaration","scope":77555,"src":"11500:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77541,"name":"bool","nodeType":"ElementaryTypeName","src":"11500:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11474:42:161"},"returnParameters":{"id":77548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77547,"mutability":"mutable","name":"messageId","nameLocation":"11597:9:161","nodeType":"VariableDeclaration","scope":77555,"src":"11589:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11589:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11588:19:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77590,"nodeType":"FunctionDefinition","src":"12211:340:161","nodes":[],"body":{"id":77589,"nodeType":"Block","src":"12384:167:161","nodes":[],"statements":[{"assignments":[77570],"declarations":[{"constant":false,"id":77570,"mutability":"mutable","name":"_value","nameLocation":"12402:6:161","nodeType":"VariableDeclaration","scope":77589,"src":"12394:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77569,"name":"uint128","nodeType":"ElementaryTypeName","src":"12394:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77576,"initialValue":{"arguments":[{"expression":{"id":77573,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12419:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12423:5:161","memberName":"value","nodeType":"MemberAccess","src":"12419:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12411:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77571,"name":"uint128","nodeType":"ElementaryTypeName","src":"12411:7:161","typeDescriptions":{}}},"id":77575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12411:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"12394:35:161"},{"expression":{"arguments":[{"id":77578,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77570,"src":"12457:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77577,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"12440:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12440:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77580,"nodeType":"ExpressionStatement","src":"12440:24:161"},{"eventCall":{"arguments":[{"id":77582,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77558,"src":"12503:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77583,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12515:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12519:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12515:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77585,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77560,"src":"12527:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77586,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77570,"src":"12537:6:161","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":77581,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"12480:22:161","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":77587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12480:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77588,"nodeType":"EmitStatement","src":"12475:69:161"}]},"baseFunctions":[74343],"documentation":{"id":77556,"nodeType":"StructuredDocumentation","src":"11676:530:161","text":" @dev Sends reply message to the program.\n Note that this function does not return `bytes32 messageId` of the sent message,\n if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)`\n or use SDK in `ethexe/sdk/src/mirror.rs`.\n As result of execution, the `ReplyQueueingRequested` event will be emitted.\n @param _repliedTo Message ID to which the reply is sent.\n @param _payload The payload of the reply message."},"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":77563,"kind":"modifierInvocation","modifierName":{"id":77562,"name":"whenNotPaused","nameLocations":["12316:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"12316:13:161"},"nodeType":"ModifierInvocation","src":"12316:13:161"},{"id":77565,"kind":"modifierInvocation","modifierName":{"id":77564,"name":"onlyIfActive","nameLocations":["12338:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"12338:12:161"},"nodeType":"ModifierInvocation","src":"12338:12:161"},{"id":77567,"kind":"modifierInvocation","modifierName":{"id":77566,"name":"onlyAfterInitMessage","nameLocations":["12359:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77345,"src":"12359:20:161"},"nodeType":"ModifierInvocation","src":"12359:20:161"}],"name":"sendReply","nameLocation":"12220:9:161","parameters":{"id":77561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77558,"mutability":"mutable","name":"_repliedTo","nameLocation":"12238:10:161","nodeType":"VariableDeclaration","scope":77590,"src":"12230:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12230:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77560,"mutability":"mutable","name":"_payload","nameLocation":"12265:8:161","nodeType":"VariableDeclaration","scope":77590,"src":"12250:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77559,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12229:45:161"},"returnParameters":{"id":77568,"nodeType":"ParameterList","parameters":[],"src":"12384:0:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77609,"nodeType":"FunctionDefinition","src":"12841:165:161","nodes":[],"body":{"id":77608,"nodeType":"Block","src":"12938:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77603,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77593,"src":"12976:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77604,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12988:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12992:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12988:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77602,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"12953:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":77606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12953:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77607,"nodeType":"EmitStatement","src":"12948:51:161"}]},"baseFunctions":[74349],"documentation":{"id":77591,"nodeType":"StructuredDocumentation","src":"12624:212:161","text":" @dev Claim value from message in mailbox.\n As result of execution, the `ValueClaimingRequested` event will be emitted.\n @param _claimedId Message ID of the value to be claimed."},"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":77596,"kind":"modifierInvocation","modifierName":{"id":77595,"name":"whenNotPaused","nameLocations":["12890:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"12890:13:161"},"nodeType":"ModifierInvocation","src":"12890:13:161"},{"id":77598,"kind":"modifierInvocation","modifierName":{"id":77597,"name":"onlyIfActive","nameLocations":["12904:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"12904:12:161"},"nodeType":"ModifierInvocation","src":"12904:12:161"},{"id":77600,"kind":"modifierInvocation","modifierName":{"id":77599,"name":"onlyAfterInitMessage","nameLocations":["12917:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77345,"src":"12917:20:161"},"nodeType":"ModifierInvocation","src":"12917:20:161"}],"name":"claimValue","nameLocation":"12850:10:161","parameters":{"id":77594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77593,"mutability":"mutable","name":"_claimedId","nameLocation":"12869:10:161","nodeType":"VariableDeclaration","scope":77609,"src":"12861:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12861:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12860:20:161"},"returnParameters":{"id":77601,"nodeType":"ParameterList","parameters":[],"src":"12938:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77627,"nodeType":"FunctionDefinition","src":"13307:168:161","nodes":[],"body":{"id":77626,"nodeType":"Block","src":"13414:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77623,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77612,"src":"13461:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77622,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"13429:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13429:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77625,"nodeType":"EmitStatement","src":"13424:44:161"}]},"baseFunctions":[74355],"documentation":{"id":77610,"nodeType":"StructuredDocumentation","src":"13012:290:161","text":" @dev Tops up the executable balance of the program.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."},"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":77615,"kind":"modifierInvocation","modifierName":{"id":77614,"name":"whenNotPaused","nameLocations":["13364:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"13364:13:161"},"nodeType":"ModifierInvocation","src":"13364:13:161"},{"id":77617,"kind":"modifierInvocation","modifierName":{"id":77616,"name":"onlyIfActive","nameLocations":["13378:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"13378:12:161"},"nodeType":"ModifierInvocation","src":"13378:12:161"},{"arguments":[{"id":77619,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77612,"src":"13406:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":77620,"kind":"modifierInvocation","modifierName":{"id":77618,"name":"retrievingVara","nameLocations":["13391:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":77480,"src":"13391:14:161"},"nodeType":"ModifierInvocation","src":"13391:22:161"}],"name":"executableBalanceTopUp","nameLocation":"13316:22:161","parameters":{"id":77613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77612,"mutability":"mutable","name":"_value","nameLocation":"13347:6:161","nodeType":"VariableDeclaration","scope":77627,"src":"13339:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77611,"name":"uint128","nodeType":"ElementaryTypeName","src":"13339:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13338:16:161"},"returnParameters":{"id":77621,"nodeType":"ParameterList","parameters":[],"src":"13414:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77675,"nodeType":"FunctionDefinition","src":"14182:374:161","nodes":[],"body":{"id":77674,"nodeType":"Block","src":"14357:199:161","nodes":[],"statements":[{"clauses":[{"block":{"id":77661,"nodeType":"Block","src":"14451:2:161","statements":[]},"errorName":"","id":77662,"nodeType":"TryCatchClause","src":"14451:2:161"},{"block":{"id":77663,"nodeType":"Block","src":"14460:2:161","statements":[]},"errorName":"","id":77664,"nodeType":"TryCatchClause","src":"14454:8:161"}],"externalCall":{"arguments":[{"expression":{"id":77649,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14393:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14397:6:161","memberName":"sender","nodeType":"MemberAccess","src":"14393:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77653,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14413:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14405:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77651,"name":"address","nodeType":"ElementaryTypeName","src":"14405:7:161","typeDescriptions":{}}},"id":77654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14405:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77655,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14420:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77656,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77632,"src":"14428:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77657,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77634,"src":"14439:2:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":77658,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77636,"src":"14443:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77659,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77638,"src":"14447:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":77646,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77308,"src":"14378:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77645,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78631,"src":"14371:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75006_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":77648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14386:6:161","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"14371:21:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":77660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:79:161","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77665,"nodeType":"TryStatement","src":"14367:95:161"},{"expression":{"arguments":[{"id":77667,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14487:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77666,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"14471:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14471:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77669,"nodeType":"ExpressionStatement","src":"14471:23:161"},{"eventCall":{"arguments":[{"id":77671,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"14542:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77670,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"14510:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14510:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77673,"nodeType":"EmitStatement","src":"14505:44:161"}]},"baseFunctions":[74369],"documentation":{"id":77628,"nodeType":"StructuredDocumentation","src":"13481:696:161","text":" @dev Tops up the executable balance of the program.\n Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router`\n using permit signature, which can save one transaction for user.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"c6049692","implemented":true,"kind":"function","modifiers":[{"id":77641,"kind":"modifierInvocation","modifierName":{"id":77640,"name":"whenNotPaused","nameLocations":["14318:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"14318:13:161"},"nodeType":"ModifierInvocation","src":"14318:13:161"},{"id":77643,"kind":"modifierInvocation","modifierName":{"id":77642,"name":"onlyIfActive","nameLocations":["14340:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"14340:12:161"},"nodeType":"ModifierInvocation","src":"14340:12:161"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"14191:32:161","parameters":{"id":77639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77630,"mutability":"mutable","name":"_value","nameLocation":"14232:6:161","nodeType":"VariableDeclaration","scope":77675,"src":"14224:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77629,"name":"uint128","nodeType":"ElementaryTypeName","src":"14224:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77632,"mutability":"mutable","name":"_deadline","nameLocation":"14248:9:161","nodeType":"VariableDeclaration","scope":77675,"src":"14240:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77631,"name":"uint256","nodeType":"ElementaryTypeName","src":"14240:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77634,"mutability":"mutable","name":"_v","nameLocation":"14265:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14259:8:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77633,"name":"uint8","nodeType":"ElementaryTypeName","src":"14259:5:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":77636,"mutability":"mutable","name":"_r","nameLocation":"14277:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14269:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14269:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77638,"mutability":"mutable","name":"_s","nameLocation":"14289:2:161","nodeType":"VariableDeclaration","scope":77675,"src":"14281:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14281:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14223:69:161"},"returnParameters":{"id":77644,"nodeType":"ParameterList","parameters":[],"src":"14357:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77693,"nodeType":"FunctionDefinition","src":"14802:208:161","nodes":[],"body":{"id":77692,"nodeType":"Block","src":"14867:143:161","nodes":[],"statements":[{"assignments":[null,77682],"declarations":[null,{"constant":false,"id":77682,"mutability":"mutable","name":"success","nameLocation":"14885:7:161","nodeType":"VariableDeclaration","scope":77692,"src":"14880:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77681,"name":"bool","nodeType":"ElementaryTypeName","src":"14880:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77685,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77683,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"14896:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14896:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"14877:52:161"},{"expression":{"arguments":[{"id":77687,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77682,"src":"14947:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77688,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74277,"src":"14956:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77686,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14939:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14939:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77691,"nodeType":"ExpressionStatement","src":"14939:64:161"}]},"baseFunctions":[74373],"documentation":{"id":77676,"nodeType":"StructuredDocumentation","src":"14562:235:161","text":" @dev Transfers locked value to the inheritor.\n Note that this function can be called only after program exited.\n As result of execution, the `LockedValueTransferRequested` event will be emitted."},"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":77679,"kind":"modifierInvocation","modifierName":{"id":77678,"name":"whenNotPaused","nameLocations":["14853:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"14853:13:161"},"nodeType":"ModifierInvocation","src":"14853:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"14811:30:161","parameters":{"id":77677,"nodeType":"ParameterList","parameters":[],"src":"14841:2:161"},"returnParameters":{"id":77680,"nodeType":"ParameterList","parameters":[],"src":"14867:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77772,"nodeType":"FunctionDefinition","src":"16008:749:161","nodes":[],"body":{"id":77771,"nodeType":"Block","src":"16163:594:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77708,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"16181:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16204:1:161","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":77710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16196:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77709,"name":"address","nodeType":"ElementaryTypeName","src":"16196:7:161","typeDescriptions":{}}},"id":77712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16196:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16181:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77714,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74279,"src":"16208:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16208:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16173:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16173:59:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77717,"nodeType":"ExpressionStatement","src":"16173:59:161"},{"expression":{"arguments":[{"id":77720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16251:8:161","subExpression":{"id":77719,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"16252:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77721,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74281,"src":"16261:17:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16261:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77718,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16243:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16243:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77724,"nodeType":"ExpressionStatement","src":"16243:38:161"},{"assignments":[77729],"declarations":[{"constant":false,"id":77729,"mutability":"mutable","name":"implementationSlot","nameLocation":"16324:18:161","nodeType":"VariableDeclaration","scope":77771,"src":"16292:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":77728,"nodeType":"UserDefinedTypeName","pathNode":{"id":77727,"name":"StorageSlot.AddressSlot","nameLocations":["16292:11:161","16304:11:161"],"nodeType":"IdentifierPath","referencedDeclaration":48971,"src":"16292:23:161"},"referencedDeclaration":48971,"src":"16292:23:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":77735,"initialValue":{"arguments":[{"expression":{"id":77732,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"16384:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":77733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16397:19:161","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":45422,"src":"16384:32:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77730,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"16357:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16369:14:161","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":49000,"src":"16357:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48971_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":77734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16357:60:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16292:125:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77737,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"16436:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16455:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16436:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16472:1:161","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":77740,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16464:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77739,"name":"address","nodeType":"ElementaryTypeName","src":"16464:7:161","typeDescriptions":{}}},"id":77742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16464:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16436:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77744,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74283,"src":"16476:22:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16428:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77747,"nodeType":"ExpressionStatement","src":"16428:73:161"},{"expression":{"id":77750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77748,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"16512:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77749,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77696,"src":"16526:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16512:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77751,"nodeType":"ExpressionStatement","src":"16512:26:161"},{"expression":{"id":77754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77752,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"16548:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77753,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77700,"src":"16558:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16548:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77755,"nodeType":"ExpressionStatement","src":"16548:18:161"},{"expression":{"id":77760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77756,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"16576:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16595:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16576:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77759,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77698,"src":"16603:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16576:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77761,"nodeType":"ExpressionStatement","src":"16576:40:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77762,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77702,"src":"16631:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16660:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16631:30:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77770,"nodeType":"IfStatement","src":"16627:124:161","trueBody":{"id":77769,"nodeType":"Block","src":"16663:88:161","statements":[{"eventCall":{"arguments":[{"id":77766,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77702,"src":"16714:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77765,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"16682:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16682:58:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77768,"nodeType":"EmitStatement","src":"16677:63:161"}]}}]},"baseFunctions":[74385],"documentation":{"id":77694,"nodeType":"StructuredDocumentation","src":"15070:933:161","text":" @dev Initializes the contract with the given parameters.\n Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default,\n so we do the initialization separately after creating `Mirror` in this method.\n @param _initializer The address of the initializer. Only this address will be able to send the first (init) message.\n @param _abiInterface The address of the ABI interface. This address will be displayed as \"proxy implementation\"\n and is necessary to show the available methods of `Mirror` smart contract on Etherscan.\n In case it is a Sails framework smart contract, the user can set his own ABI.\n @param _isSmall The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\n @param _initialExecutableBalance The initial executable balance to be transferred to the program."},"functionSelector":"bfa28576","implemented":true,"kind":"function","modifiers":[{"id":77705,"kind":"modifierInvocation","modifierName":{"id":77704,"name":"onlyRouter","nameLocations":["16148:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77431,"src":"16148:10:161"},"nodeType":"ModifierInvocation","src":"16148:10:161"}],"name":"initialize","nameLocation":"16017:10:161","parameters":{"id":77703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77696,"mutability":"mutable","name":"_initializer","nameLocation":"16036:12:161","nodeType":"VariableDeclaration","scope":77772,"src":"16028:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77695,"name":"address","nodeType":"ElementaryTypeName","src":"16028:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77698,"mutability":"mutable","name":"_abiInterface","nameLocation":"16058:13:161","nodeType":"VariableDeclaration","scope":77772,"src":"16050:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77697,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77700,"mutability":"mutable","name":"_isSmall","nameLocation":"16078:8:161","nodeType":"VariableDeclaration","scope":77772,"src":"16073:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77699,"name":"bool","nodeType":"ElementaryTypeName","src":"16073:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":77702,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"16096:25:161","nodeType":"VariableDeclaration","scope":77772,"src":"16088:33:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77701,"name":"uint128","nodeType":"ElementaryTypeName","src":"16088:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16027:95:161"},"returnParameters":{"id":77706,"nodeType":"ParameterList","parameters":[],"src":"16163:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77872,"nodeType":"FunctionDefinition","src":"16971:1748:161","nodes":[],"body":{"id":77871,"nodeType":"Block","src":"17143:1576:161","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77784,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17254:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"17254:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":77788,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17285:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17277:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77786,"name":"address","nodeType":"ElementaryTypeName","src":"17277:7:161","typeDescriptions":{}}},"id":77789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17277:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17254:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77791,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74285,"src":"17292:14:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77783,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17246:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17246:63:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77794,"nodeType":"ExpressionStatement","src":"17246:63:161"},{"condition":{"expression":{"id":77795,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17442:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17454:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"17442:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":77803,"nodeType":"IfStatement","src":"17438:113:161","trueBody":{"id":77802,"nodeType":"Block","src":"17482:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":77798,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17513:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"17513:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77797,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"17496:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17496:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77801,"nodeType":"ExpressionStatement","src":"17496:44:161"}]}},{"assignments":[77806],"declarations":[{"constant":false,"id":77806,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"17637:18:161","nodeType":"VariableDeclaration","scope":77871,"src":"17629:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17629:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":77811,"initialValue":{"arguments":[{"expression":{"id":77808,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17672:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17684:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"17672:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":77807,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78053,"src":"17658:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":77810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17658:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17629:64:161"},{"assignments":[77814],"declarations":[{"constant":false,"id":77814,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"17779:15:161","nodeType":"VariableDeclaration","scope":77871,"src":"17771:23:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17771:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send value for each claim.","id":77819,"initialValue":{"arguments":[{"expression":{"id":77816,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17810:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17822:11:161","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":83161,"src":"17810:23:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":77815,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78561,"src":"17797:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":77818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17797:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17771:63:161"},{"condition":{"expression":{"id":77820,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17914:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17926:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"17914:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":77840,"nodeType":"Block","src":"18001:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77829,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18023:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18035:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"18023:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18056:1:161","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":77832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18048:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77831,"name":"address","nodeType":"ElementaryTypeName","src":"18048:7:161","typeDescriptions":{}}},"id":77834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18048:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18023:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77836,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74287,"src":"18060:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18060:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77828,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18015:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18015:67:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77839,"nodeType":"ExpressionStatement","src":"18015:67:161"}]},"id":77841,"nodeType":"IfStatement","src":"17910:183:161","trueBody":{"id":77827,"nodeType":"Block","src":"17934:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":77823,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"17962:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17974:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"17962:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77822,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78594,"src":"17948:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17948:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77826,"nodeType":"ExpressionStatement","src":"17948:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77842,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"18181:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77843,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18194:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18194:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18181:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":77852,"nodeType":"IfStatement","src":"18177:110:161","trueBody":{"id":77851,"nodeType":"Block","src":"18220:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":77847,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18251:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18263:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18251:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77846,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78609,"src":"18234:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18234:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77850,"nodeType":"ExpressionStatement","src":"18234:42:161"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":77855,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18425:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18437:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"18425:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77857,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18458:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18470:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"18458:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77859,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18496:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18508:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83147,"src":"18496:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":77861,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18528:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18540:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83150,"src":"18528:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77863,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18563:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"18563:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":77865,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77776,"src":"18603:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18615:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"18603:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":77867,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77814,"src":"18655:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77868,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77806,"src":"18684:18:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77853,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"18387:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":77854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18392:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":83450,"src":"18387:24:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32) pure returns (bytes32)"}},"id":77869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18387:325:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77782,"id":77870,"nodeType":"Return","src":"18380:332:161"}]},"baseFunctions":[74394],"documentation":{"id":77773,"nodeType":"StructuredDocumentation","src":"16763:203:161","text":" @dev Performs state transition for the `Mirror` contract.\n @param _transition The state transition data.\n @return transitionHash The hash of the performed state transition."},"functionSelector":"084f443a","implemented":true,"kind":"function","modifiers":[{"id":77779,"kind":"modifierInvocation","modifierName":{"id":77778,"name":"onlyRouter","nameLocations":["17087:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77431,"src":"17087:10:161"},"nodeType":"ModifierInvocation","src":"17087:10:161"}],"name":"performStateTransition","nameLocation":"16980:22:161","parameters":{"id":77777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77776,"mutability":"mutable","name":"_transition","nameLocation":"17033:11:161","nodeType":"VariableDeclaration","scope":77872,"src":"17003:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":77775,"nodeType":"UserDefinedTypeName","pathNode":{"id":77774,"name":"Gear.StateTransition","nameLocations":["17003:4:161","17008:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"17003:20:161"},"referencedDeclaration":83167,"src":"17003:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"17002:43:161"},"returnParameters":{"id":77782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77781,"mutability":"mutable","name":"transitionHash","nameLocation":"17123:14:161","nodeType":"VariableDeclaration","scope":77872,"src":"17115:22:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17115:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17114:24:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77922,"nodeType":"FunctionDefinition","src":"19152:760:161","nodes":[],"body":{"id":77921,"nodeType":"Block","src":"19335:577:161","nodes":[],"statements":[{"assignments":[77887],"declarations":[{"constant":false,"id":77887,"mutability":"mutable","name":"_value","nameLocation":"19353:6:161","nodeType":"VariableDeclaration","scope":77921,"src":"19345:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77886,"name":"uint128","nodeType":"ElementaryTypeName","src":"19345:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77893,"initialValue":{"arguments":[{"expression":{"id":77890,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19370:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19374:5:161","memberName":"value","nodeType":"MemberAccess","src":"19370:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19362:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77888,"name":"uint128","nodeType":"ElementaryTypeName","src":"19362:7:161","typeDescriptions":{}}},"id":77892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19362:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"19345:35:161"},{"expression":{"arguments":[{"id":77895,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"19408:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77894,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77537,"src":"19391:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19391:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77897,"nodeType":"ExpressionStatement","src":"19391:24:161"},{"assignments":[77899],"declarations":[{"constant":false,"id":77899,"mutability":"mutable","name":"_nonce","nameLocation":"19434:6:161","nodeType":"VariableDeclaration","scope":77921,"src":"19426:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77898,"name":"uint256","nodeType":"ElementaryTypeName","src":"19426:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77901,"initialValue":{"id":77900,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"19443:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19426:22:161"},{"assignments":[77904],"declarations":[{"constant":false,"id":77904,"mutability":"mutable","name":"id","nameLocation":"19617:2:161","nodeType":"VariableDeclaration","scope":77921,"src":"19609:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19609:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate unique message ID by formula:\n - `keccak256(abi.encodePacked(address(this), nonce++))`","id":77905,"nodeType":"VariableDeclarationStatement","src":"19609:10:161"},{"AST":{"nativeSrc":"19654:129:161","nodeType":"YulBlock","src":"19654:129:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19675:4:161","nodeType":"YulLiteral","src":"19675:4:161","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"19685:2:161","nodeType":"YulLiteral","src":"19685:2:161","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"19689:7:161","nodeType":"YulIdentifier","src":"19689:7:161"},"nativeSrc":"19689:9:161","nodeType":"YulFunctionCall","src":"19689:9:161"}],"functionName":{"name":"shl","nativeSrc":"19681:3:161","nodeType":"YulIdentifier","src":"19681:3:161"},"nativeSrc":"19681:18:161","nodeType":"YulFunctionCall","src":"19681:18:161"}],"functionName":{"name":"mstore","nativeSrc":"19668:6:161","nodeType":"YulIdentifier","src":"19668:6:161"},"nativeSrc":"19668:32:161","nodeType":"YulFunctionCall","src":"19668:32:161"},"nativeSrc":"19668:32:161","nodeType":"YulExpressionStatement","src":"19668:32:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19720:4:161","nodeType":"YulLiteral","src":"19720:4:161","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"19726:6:161","nodeType":"YulIdentifier","src":"19726:6:161"}],"functionName":{"name":"mstore","nativeSrc":"19713:6:161","nodeType":"YulIdentifier","src":"19713:6:161"},"nativeSrc":"19713:20:161","nodeType":"YulFunctionCall","src":"19713:20:161"},"nativeSrc":"19713:20:161","nodeType":"YulExpressionStatement","src":"19713:20:161"},{"nativeSrc":"19746:27:161","nodeType":"YulAssignment","src":"19746:27:161","value":{"arguments":[{"kind":"number","nativeSrc":"19762:4:161","nodeType":"YulLiteral","src":"19762:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19768:4:161","nodeType":"YulLiteral","src":"19768:4:161","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"19752:9:161","nodeType":"YulIdentifier","src":"19752:9:161"},"nativeSrc":"19752:21:161","nodeType":"YulFunctionCall","src":"19752:21:161"},"variableNames":[{"name":"id","nativeSrc":"19746:2:161","nodeType":"YulIdentifier","src":"19746:2:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77899,"isOffset":false,"isSlot":false,"src":"19726:6:161","valueSize":1},{"declaration":77904,"isOffset":false,"isSlot":false,"src":"19746:2:161","valueSize":1}],"flags":["memory-safe"],"id":77906,"nodeType":"InlineAssembly","src":"19629:154:161"},{"expression":{"id":77908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19792:7:161","subExpression":{"id":77907,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77314,"src":"19792:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77909,"nodeType":"ExpressionStatement","src":"19792:7:161"},{"eventCall":{"arguments":[{"id":77911,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77904,"src":"19840:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77912,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19844:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19848:6:161","memberName":"sender","nodeType":"MemberAccess","src":"19844:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77914,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77875,"src":"19856:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77915,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77887,"src":"19866:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77916,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77877,"src":"19874:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"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_bool","typeString":"bool"}],"id":77910,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"19815:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":77917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19815:70:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77918,"nodeType":"EmitStatement","src":"19810:75:161"},{"expression":{"id":77919,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77904,"src":"19903:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77885,"id":77920,"nodeType":"Return","src":"19896:9:161"}]},"documentation":{"id":77873,"nodeType":"StructuredDocumentation","src":"18783:364:161","text":" @dev Internal implementation of `sendMessage` function.\n This function is used to send message to the program and emit `MessageQueueingRequested` event.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"implemented":true,"kind":"function","modifiers":[{"id":77880,"kind":"modifierInvocation","modifierName":{"id":77879,"name":"onlyIfActive","nameLocations":["19240:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"19240:12:161"},"nodeType":"ModifierInvocation","src":"19240:12:161"},{"id":77882,"kind":"modifierInvocation","modifierName":{"id":77881,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["19261:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":77366,"src":"19261:33:161"},"nodeType":"ModifierInvocation","src":"19261:33:161"}],"name":"_sendMessage","nameLocation":"19161:12:161","parameters":{"id":77878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77875,"mutability":"mutable","name":"_payload","nameLocation":"19189:8:161","nodeType":"VariableDeclaration","scope":77922,"src":"19174:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77874,"name":"bytes","nodeType":"ElementaryTypeName","src":"19174:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77877,"mutability":"mutable","name":"_callReply","nameLocation":"19204:10:161","nodeType":"VariableDeclaration","scope":77922,"src":"19199:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77876,"name":"bool","nodeType":"ElementaryTypeName","src":"19199:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19173:42:161"},"returnParameters":{"id":77885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77884,"mutability":"mutable","name":"messageId","nameLocation":"19320:9:161","nodeType":"VariableDeclaration","scope":77922,"src":"19312:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19312:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19311:19:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77955,"nodeType":"FunctionDefinition","src":"20241:470:161","nodes":[],"body":{"id":77954,"nodeType":"Block","src":"20390:321:161","nodes":[],"statements":[{"assignments":[77933],"declarations":[{"constant":false,"id":77933,"mutability":"mutable","name":"balance","nameLocation":"20408:7:161","nodeType":"VariableDeclaration","scope":77954,"src":"20400:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77932,"name":"uint256","nodeType":"ElementaryTypeName","src":"20400:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77939,"initialValue":{"expression":{"arguments":[{"id":77936,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20426:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78723","typeString":"contract Mirror"}],"id":77935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20418:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77934,"name":"address","nodeType":"ElementaryTypeName","src":"20418:7:161","typeDescriptions":{}}},"id":77937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20418:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20432:7:161","memberName":"balance","nodeType":"MemberAccess","src":"20418:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20400:39:161"},{"assignments":[77941],"declarations":[{"constant":false,"id":77941,"mutability":"mutable","name":"balance128","nameLocation":"20607:10:161","nodeType":"VariableDeclaration","scope":77954,"src":"20599:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77940,"name":"uint128","nodeType":"ElementaryTypeName","src":"20599:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77946,"initialValue":{"arguments":[{"id":77944,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77933,"src":"20628:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20620:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77942,"name":"uint128","nodeType":"ElementaryTypeName","src":"20620:7:161","typeDescriptions":{}}},"id":77945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20620:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"20599:37:161"},{"expression":{"components":[{"id":77947,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77941,"src":"20654:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":77949,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77320,"src":"20681:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77950,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77941,"src":"20692:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77948,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"20666:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20653:51:161","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":77931,"id":77953,"nodeType":"Return","src":"20646:58:161"}]},"documentation":{"id":77923,"nodeType":"StructuredDocumentation","src":"19918:318:161","text":" @dev Internal implementation of `transferLockedValueToInheritor` function.\n Note that this function can be called only after program exited.\n @return valueTransferred The amount of WVARA transferred.\n @return transferSuccess The flag indicating if the transfer was successful."},"implemented":true,"kind":"function","modifiers":[{"id":77926,"kind":"modifierInvocation","modifierName":{"id":77925,"name":"onlyIfExited","nameLocations":["20308:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77412,"src":"20308:12:161"},"nodeType":"ModifierInvocation","src":"20308:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"20250:31:161","parameters":{"id":77924,"nodeType":"ParameterList","parameters":[],"src":"20281:2:161"},"returnParameters":{"id":77931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77928,"mutability":"mutable","name":"valueTransferred","nameLocation":"20346:16:161","nodeType":"VariableDeclaration","scope":77955,"src":"20338:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77927,"name":"uint128","nodeType":"ElementaryTypeName","src":"20338:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77930,"mutability":"mutable","name":"transferSuccess","nameLocation":"20369:15:161","nodeType":"VariableDeclaration","scope":77955,"src":"20364:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77929,"name":"bool","nodeType":"ElementaryTypeName","src":"20364:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20337:48:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78053,"nodeType":"FunctionDefinition","src":"21279:1232:161","nodes":[],"body":{"id":78052,"nodeType":"Block","src":"21363:1148:161","nodes":[],"statements":[{"assignments":[77966],"declarations":[{"constant":false,"id":77966,"mutability":"mutable","name":"messagesLen","nameLocation":"21381:11:161","nodeType":"VariableDeclaration","scope":78052,"src":"21373:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77965,"name":"uint256","nodeType":"ElementaryTypeName","src":"21373:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77969,"initialValue":{"expression":{"id":77967,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"21395:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:6:161","memberName":"length","nodeType":"MemberAccess","src":"21395:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21373:38:161"},{"assignments":[77971],"declarations":[{"constant":false,"id":77971,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"21429:18:161","nodeType":"VariableDeclaration","scope":78052,"src":"21421:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77970,"name":"uint256","nodeType":"ElementaryTypeName","src":"21421:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77975,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77972,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77966,"src":"21450:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21464:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21450:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21421:45:161"},{"assignments":[77977],"declarations":[{"constant":false,"id":77977,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"21484:20:161","nodeType":"VariableDeclaration","scope":78052,"src":"21476:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77976,"name":"uint256","nodeType":"ElementaryTypeName","src":"21476:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77982,"initialValue":{"arguments":[{"id":77980,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77971,"src":"21523:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77978,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21507:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":77979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21514:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"21507:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21507:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21476:66:161"},{"assignments":[77984],"declarations":[{"constant":false,"id":77984,"mutability":"mutable","name":"offset","nameLocation":"21560:6:161","nodeType":"VariableDeclaration","scope":78052,"src":"21552:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77983,"name":"uint256","nodeType":"ElementaryTypeName","src":"21552:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77986,"initialValue":{"hexValue":"30","id":77985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21569:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21552:18:161"},{"body":{"id":78043,"nodeType":"Block","src":"21623:785:161","statements":[{"assignments":[78001],"declarations":[{"constant":false,"id":78001,"mutability":"mutable","name":"message","nameLocation":"21659:7:161","nodeType":"VariableDeclaration","scope":78043,"src":"21637:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78000,"nodeType":"UserDefinedTypeName","pathNode":{"id":77999,"name":"Gear.Message","nameLocations":["21637:4:161","21642:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"21637:12:161"},"referencedDeclaration":83101,"src":"21637:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":78005,"initialValue":{"baseExpression":{"id":78002,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"21669:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":78004,"indexExpression":{"id":78003,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21679:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21669:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"21637:44:161"},{"assignments":[78008],"declarations":[{"constant":false,"id":78008,"mutability":"mutable","name":"messageHash","nameLocation":"21787:11:161","nodeType":"VariableDeclaration","scope":78043,"src":"21779:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21779:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":78013,"initialValue":{"arguments":[{"id":78011,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"21818:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":78009,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"21801:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":78010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21806:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":83391,"src":"21801:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$83101_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":78012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21801:25:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21779:47:161"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":78017,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77977,"src":"21990:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78018,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77984,"src":"22012:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78019,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78008,"src":"22020:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78014,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21964:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21971:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"21964:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21964:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78021,"nodeType":"ExpressionStatement","src":"21964:68:161"},{"id":78026,"nodeType":"UncheckedBlock","src":"22046:55:161","statements":[{"expression":{"id":78024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78022,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77984,"src":"22074:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22084:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22074:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78025,"nodeType":"ExpressionStatement","src":"22074:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78027,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22240:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22248:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"22240:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22261:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"22240:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22267:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22240:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":78041,"nodeType":"Block","src":"22339:59:161","statements":[{"expression":{"arguments":[{"id":78038,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22375:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78037,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78448,"src":"22357:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22357:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78040,"nodeType":"ExpressionStatement","src":"22357:26:161"}]},"id":78042,"nodeType":"IfStatement","src":"22236:162:161","trueBody":{"id":78036,"nodeType":"Block","src":"22270:63:161","statements":[{"expression":{"arguments":[{"id":78033,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"22310:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78032,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"22288:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22288:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78035,"nodeType":"ExpressionStatement","src":"22288:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77991,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21601:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77992,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77966,"src":"21605:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21601:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78044,"initializationExpression":{"assignments":[77988],"declarations":[{"constant":false,"id":77988,"mutability":"mutable","name":"i","nameLocation":"21594:1:161","nodeType":"VariableDeclaration","scope":78044,"src":"21586:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77987,"name":"uint256","nodeType":"ElementaryTypeName","src":"21586:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77990,"initialValue":{"hexValue":"30","id":77989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21598:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21586:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"21618:3:161","subExpression":{"id":77994,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"21618:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77996,"nodeType":"ExpressionStatement","src":"21618:3:161"},"nodeType":"ForStatement","src":"21581:827:161"},{"expression":{"arguments":[{"id":78047,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77977,"src":"22460:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22482:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78049,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77971,"src":"22485:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78045,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"22425:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22432:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"22425:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22425:79:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77964,"id":78051,"nodeType":"Return","src":"22418:86:161"}]},"documentation":{"id":77956,"nodeType":"StructuredDocumentation","src":"20981:293:161","text":" @dev Internal implementation of `_sendMessages` function.\n It sends all outgoing messages from the `Mirror` contract and emits appropriate events.\n @param _messages The array of messages to be sent.\n @return messagesHash The hash of the sent messages."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"21288:13:161","parameters":{"id":77961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77960,"mutability":"mutable","name":"_messages","nameLocation":"21326:9:161","nodeType":"VariableDeclaration","scope":78053,"src":"21302:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":77958,"nodeType":"UserDefinedTypeName","pathNode":{"id":77957,"name":"Gear.Message","nameLocations":["21302:4:161","21307:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"21302:12:161"},"referencedDeclaration":83101,"src":"21302:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"id":77959,"nodeType":"ArrayTypeName","src":"21302:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83101_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"21301:35:161"},"returnParameters":{"id":77964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77963,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78053,"src":"21354:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21354:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21353:9:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78107,"nodeType":"FunctionDefinition","src":"23021:1125:161","nodes":[],"body":{"id":78106,"nodeType":"Block","src":"23092:1054:161","nodes":[],"statements":[{"condition":{"id":78063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23278:37:161","subExpression":{"arguments":[{"id":78061,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23306:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78060,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78317,"src":"23279:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83101_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":78062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23279:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev First, we'll try to parse event from the Sails framework\n and then emit it on behalf of the `Mirror` smart contract.","id":78105,"nodeType":"IfStatement","src":"23274:866:161","trueBody":{"id":78104,"nodeType":"Block","src":"23317:823:161","statements":[{"condition":{"expression":{"id":78064,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23585:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23594:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"23585:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78092,"nodeType":"IfStatement","src":"23581:453:161","trueBody":{"id":78091,"nodeType":"Block","src":"23600:434:161","statements":[{"assignments":[78067,null],"declarations":[{"constant":false,"id":78067,"mutability":"mutable","name":"success","nameLocation":"23624:7:161","nodeType":"VariableDeclaration","scope":78091,"src":"23619:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78066,"name":"bool","nodeType":"ElementaryTypeName","src":"23619:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78076,"initialValue":{"arguments":[{"expression":{"id":78073,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23676:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"23676:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":78068,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23636:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23645:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"23636:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23657:4:161","memberName":"call","nodeType":"MemberAccess","src":"23636:25:161","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":78072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23667:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"23636:39:161","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":78075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23636:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"23618:75:161"},{"condition":{"id":78078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23716:8:161","subExpression":{"id":78077,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78067,"src":"23717:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78090,"nodeType":"IfStatement","src":"23712:308:161","trueBody":{"id":78089,"nodeType":"Block","src":"23726:294:161","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78080,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23923:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23932:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"23923:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78082,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23936:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23945:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"23936:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78084,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"23958:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23967:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"23958:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78079,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"23905:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23905:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78087,"nodeType":"EmitStatement","src":"23900:73:161"},{"functionReturnParameters":78059,"id":78088,"nodeType":"Return","src":"23995:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":78094,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24061:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24070:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"24061:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78096,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24074:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24083:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"24074:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78098,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24096:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24105:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"24096:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78100,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78057,"src":"24114:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24123:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"24114:14:161","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":78093,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"24053:7:161","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":78102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24053:76:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78103,"nodeType":"EmitStatement","src":"24048:81:161"}]}}]},"documentation":{"id":78054,"nodeType":"StructuredDocumentation","src":"22517:499:161","text":" @dev Internal function to send message that goes to mailbox.\n Value never sent since goes to mailbox.\n Emits `Message` event if it is not event from Sails framework.\n If `_message.call = true`, then call will be made to `_message.destination`\n with _message.payload and gas limit of 500_000 to prevent DoS attacks.\n If call fails, then `MessageCallFailed` event will be emitted.\n @param _message The message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"23030:21:161","parameters":{"id":78058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78057,"mutability":"mutable","name":"_message","nameLocation":"23074:8:161","nodeType":"VariableDeclaration","scope":78107,"src":"23052:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78056,"nodeType":"UserDefinedTypeName","pathNode":{"id":78055,"name":"Gear.Message","nameLocations":["23052:4:161","23057:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"23052:12:161"},"referencedDeclaration":83101,"src":"23052:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"23051:32:161"},"returnParameters":{"id":78059,"nodeType":"ParameterList","parameters":[],"src":"23092:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78317,"nodeType":"FunctionDefinition","src":"27225:3845:161","nodes":[],"body":{"id":78316,"nodeType":"Block","src":"27329:3741:161","nodes":[],"statements":[{"assignments":[78117],"declarations":[{"constant":false,"id":78117,"mutability":"mutable","name":"payload","nameLocation":"27354:7:161","nodeType":"VariableDeclaration","scope":78316,"src":"27339:22:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78116,"name":"bytes","nodeType":"ElementaryTypeName","src":"27339:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78120,"initialValue":{"expression":{"id":78118,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27364:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27373:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"27364:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27339:41:161"},{"condition":{"id":78136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27395:86:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78121,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27397:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27406:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"27397:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":78123,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77305,"src":"27421:14:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27397:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78125,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78111,"src":"27439:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27448:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"27439:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27457:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27439:19:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27397:61:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78130,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"27462:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27470:6:161","memberName":"length","nodeType":"MemberAccess","src":"27462:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27479:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27462:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27397:83:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27396:85:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78140,"nodeType":"IfStatement","src":"27391:129:161","trueBody":{"id":78139,"nodeType":"Block","src":"27483:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27504:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78138,"nodeType":"Return","src":"27497:12:161"}]}},{"assignments":[78142],"declarations":[{"constant":false,"id":78142,"mutability":"mutable","name":"topicsLength","nameLocation":"27538:12:161","nodeType":"VariableDeclaration","scope":78316,"src":"27530:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78141,"name":"uint256","nodeType":"ElementaryTypeName","src":"27530:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78143,"nodeType":"VariableDeclarationStatement","src":"27530:20:161"},{"AST":{"nativeSrc":"27585:224:161","nodeType":"YulBlock","src":"27585:224:161","statements":[{"nativeSrc":"27745:54:161","nodeType":"YulAssignment","src":"27745:54:161","value":{"arguments":[{"kind":"number","nativeSrc":"27765:3:161","nodeType":"YulLiteral","src":"27765:3:161","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"27783:14:161","nodeType":"YulIdentifier","src":"27783:14:161"}],"functionName":{"name":"calldataload","nativeSrc":"27770:12:161","nodeType":"YulIdentifier","src":"27770:12:161"},"nativeSrc":"27770:28:161","nodeType":"YulFunctionCall","src":"27770:28:161"}],"functionName":{"name":"shr","nativeSrc":"27761:3:161","nodeType":"YulIdentifier","src":"27761:3:161"},"nativeSrc":"27761:38:161","nodeType":"YulFunctionCall","src":"27761:38:161"},"variableNames":[{"name":"topicsLength","nativeSrc":"27745:12:161","nodeType":"YulIdentifier","src":"27745:12:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"27783:14:161","suffix":"offset","valueSize":1},{"declaration":78142,"isOffset":false,"isSlot":false,"src":"27745:12:161","valueSize":1}],"flags":["memory-safe"],"id":78144,"nodeType":"InlineAssembly","src":"27560:249:161"},{"condition":{"id":78153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27823:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78145,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"27825:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":78146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27841:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27825:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78148,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"27846:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":78149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27862:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"27846:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27825:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78152,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27824:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78157,"nodeType":"IfStatement","src":"27819:84:161","trueBody":{"id":78156,"nodeType":"Block","src":"27866:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27887:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78155,"nodeType":"Return","src":"27880:12:161"}]}},{"assignments":[78159],"declarations":[{"constant":false,"id":78159,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"27921:19:161","nodeType":"VariableDeclaration","scope":78316,"src":"27913:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78158,"name":"uint256","nodeType":"ElementaryTypeName","src":"27913:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78160,"nodeType":"VariableDeclarationStatement","src":"27913:27:161"},{"id":78169,"nodeType":"UncheckedBlock","src":"27950:78:161","statements":[{"expression":{"id":78167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78161,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"27974:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":78162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27996:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78163,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"28000:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28015:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"28000:17:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27996:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27974:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78168,"nodeType":"ExpressionStatement","src":"27974:43:161"}]},{"condition":{"id":78175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28042:40:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78170,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"28044:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28052:6:161","memberName":"length","nodeType":"MemberAccess","src":"28044:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":78172,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"28062:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28044:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78174,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28043:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78179,"nodeType":"IfStatement","src":"28038:83:161","trueBody":{"id":78178,"nodeType":"Block","src":"28084:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28105:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78177,"nodeType":"Return","src":"28098:12:161"}]}},{"assignments":[78182],"declarations":[{"constant":false,"id":78182,"mutability":"mutable","name":"topic1","nameLocation":"28224:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"28216:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28216:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":78183,"nodeType":"VariableDeclarationStatement","src":"28216:14:161"},{"AST":{"nativeSrc":"28265:70:161","nodeType":"YulBlock","src":"28265:70:161","statements":[{"nativeSrc":"28279:46:161","nodeType":"YulAssignment","src":"28279:46:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"28306:14:161","nodeType":"YulIdentifier","src":"28306:14:161"},{"kind":"number","nativeSrc":"28322:1:161","nodeType":"YulLiteral","src":"28322:1:161","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28302:3:161","nodeType":"YulIdentifier","src":"28302:3:161"},"nativeSrc":"28302:22:161","nodeType":"YulFunctionCall","src":"28302:22:161"}],"functionName":{"name":"calldataload","nativeSrc":"28289:12:161","nodeType":"YulIdentifier","src":"28289:12:161"},"nativeSrc":"28289:36:161","nodeType":"YulFunctionCall","src":"28289:36:161"},"variableNames":[{"name":"topic1","nativeSrc":"28279:6:161","nodeType":"YulIdentifier","src":"28279:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"28306:14:161","suffix":"offset","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"28279:6:161","valueSize":1}],"flags":["memory-safe"],"id":78184,"nodeType":"InlineAssembly","src":"28240:95:161"},{"condition":{"id":78255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28891:763:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78185,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"28906:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78186,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"28916:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28929:8:161","memberName":"selector","nodeType":"MemberAccess","src":"28916:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28906:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78189,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"28953:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78190,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"28963:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":78191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28988:8:161","memberName":"selector","nodeType":"MemberAccess","src":"28963:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28953:43:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:90:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78194,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29012:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78195,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"29022:22:161","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":78196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29045:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29022:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29012:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:147:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78199,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29069:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78200,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"29079:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":78201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29102:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29079:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29069:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:204:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78204,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29126:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78205,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"29136:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29163:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29136:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29126:45:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:265:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78209,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29187:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78210,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"29197:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29229:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29197:40:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29187:50:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:331:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78214,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29253:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78215,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"29263:7:161","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":78216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29271:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29263:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29253:26:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:373:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78219,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29295:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78220,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"29305:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29323:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29305:26:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29295:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:425:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78224,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29347:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78225,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"29357:5:161","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":78226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29363:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29357:14:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29347:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:465:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78229,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29387:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78230,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"29397:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29413:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29397:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29387:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:515:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78234,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29437:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78235,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"29447:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29460:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29447:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29437:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:562:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78239,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29484:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78240,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"29494:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29531:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29494:45:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29484:55:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:633:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78244,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29555:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78245,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"29565:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29585:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29565:28:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29555:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:687:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78249,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"29609:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78250,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"29619:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29636:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29619:25:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29609:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:738:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78254,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28892:762:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":78259,"nodeType":"IfStatement","src":"28887:806:161","trueBody":{"id":78258,"nodeType":"Block","src":"29656:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29677:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78115,"id":78257,"nodeType":"Return","src":"29670:12:161"}]}},{"assignments":[78261],"declarations":[{"constant":false,"id":78261,"mutability":"mutable","name":"size","nameLocation":"29744:4:161","nodeType":"VariableDeclaration","scope":78316,"src":"29736:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78260,"name":"uint256","nodeType":"ElementaryTypeName","src":"29736:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78262,"nodeType":"VariableDeclarationStatement","src":"29736:12:161"},{"id":78270,"nodeType":"UncheckedBlock","src":"29758:78:161","statements":[{"expression":{"id":78268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78263,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78261,"src":"29782:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78264,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78117,"src":"29789:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29797:6:161","memberName":"length","nodeType":"MemberAccess","src":"29789:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78266,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78159,"src":"29806:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29789:36:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29782:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78269,"nodeType":"ExpressionStatement","src":"29782:43:161"}]},{"assignments":[78272],"declarations":[{"constant":false,"id":78272,"mutability":"mutable","name":"memPtr","nameLocation":"29854:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"29846:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78271,"name":"uint256","nodeType":"ElementaryTypeName","src":"29846:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78277,"initialValue":{"arguments":[{"id":78275,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78261,"src":"29879:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78273,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"29863:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29870:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"29863:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29863:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29846:38:161"},{"AST":{"nativeSrc":"29919:92:161","nodeType":"YulBlock","src":"29919:92:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"29946:6:161","nodeType":"YulIdentifier","src":"29946:6:161"},{"arguments":[{"name":"payload.offset","nativeSrc":"29958:14:161","nodeType":"YulIdentifier","src":"29958:14:161"},{"name":"topicsLengthInBytes","nativeSrc":"29974:19:161","nodeType":"YulIdentifier","src":"29974:19:161"}],"functionName":{"name":"add","nativeSrc":"29954:3:161","nodeType":"YulIdentifier","src":"29954:3:161"},"nativeSrc":"29954:40:161","nodeType":"YulFunctionCall","src":"29954:40:161"},{"name":"size","nativeSrc":"29996:4:161","nodeType":"YulIdentifier","src":"29996:4:161"}],"functionName":{"name":"calldatacopy","nativeSrc":"29933:12:161","nodeType":"YulIdentifier","src":"29933:12:161"},"nativeSrc":"29933:68:161","nodeType":"YulFunctionCall","src":"29933:68:161"},"nativeSrc":"29933:68:161","nodeType":"YulExpressionStatement","src":"29933:68:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"29946:6:161","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"29958:14:161","suffix":"offset","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"29996:4:161","valueSize":1},{"declaration":78159,"isOffset":false,"isSlot":false,"src":"29974:19:161","valueSize":1}],"flags":["memory-safe"],"id":78278,"nodeType":"InlineAssembly","src":"29894:117:161"},{"assignments":[78281],"declarations":[{"constant":false,"id":78281,"mutability":"mutable","name":"topic2","nameLocation":"30166:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30158:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30158:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`.\n Regular offsets: `32`, `64`, `96`.","id":78282,"nodeType":"VariableDeclarationStatement","src":"30158:14:161"},{"assignments":[78284],"declarations":[{"constant":false,"id":78284,"mutability":"mutable","name":"topic3","nameLocation":"30190:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30182:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30182:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78285,"nodeType":"VariableDeclarationStatement","src":"30182:14:161"},{"assignments":[78287],"declarations":[{"constant":false,"id":78287,"mutability":"mutable","name":"topic4","nameLocation":"30214:6:161","nodeType":"VariableDeclaration","scope":78316,"src":"30206:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78286,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30206:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78288,"nodeType":"VariableDeclarationStatement","src":"30206:14:161"},{"AST":{"nativeSrc":"30255:191:161","nodeType":"YulBlock","src":"30255:191:161","statements":[{"nativeSrc":"30269:47:161","nodeType":"YulAssignment","src":"30269:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30296:14:161","nodeType":"YulIdentifier","src":"30296:14:161"},{"kind":"number","nativeSrc":"30312:2:161","nodeType":"YulLiteral","src":"30312:2:161","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"30292:3:161","nodeType":"YulIdentifier","src":"30292:3:161"},"nativeSrc":"30292:23:161","nodeType":"YulFunctionCall","src":"30292:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30279:12:161","nodeType":"YulIdentifier","src":"30279:12:161"},"nativeSrc":"30279:37:161","nodeType":"YulFunctionCall","src":"30279:37:161"},"variableNames":[{"name":"topic2","nativeSrc":"30269:6:161","nodeType":"YulIdentifier","src":"30269:6:161"}]},{"nativeSrc":"30329:47:161","nodeType":"YulAssignment","src":"30329:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30356:14:161","nodeType":"YulIdentifier","src":"30356:14:161"},{"kind":"number","nativeSrc":"30372:2:161","nodeType":"YulLiteral","src":"30372:2:161","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"30352:3:161","nodeType":"YulIdentifier","src":"30352:3:161"},"nativeSrc":"30352:23:161","nodeType":"YulFunctionCall","src":"30352:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30339:12:161","nodeType":"YulIdentifier","src":"30339:12:161"},"nativeSrc":"30339:37:161","nodeType":"YulFunctionCall","src":"30339:37:161"},"variableNames":[{"name":"topic3","nativeSrc":"30329:6:161","nodeType":"YulIdentifier","src":"30329:6:161"}]},{"nativeSrc":"30389:47:161","nodeType":"YulAssignment","src":"30389:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30416:14:161","nodeType":"YulIdentifier","src":"30416:14:161"},{"kind":"number","nativeSrc":"30432:2:161","nodeType":"YulLiteral","src":"30432:2:161","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"30412:3:161","nodeType":"YulIdentifier","src":"30412:3:161"},"nativeSrc":"30412:23:161","nodeType":"YulFunctionCall","src":"30412:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30399:12:161","nodeType":"YulIdentifier","src":"30399:12:161"},"nativeSrc":"30399:37:161","nodeType":"YulFunctionCall","src":"30399:37:161"},"variableNames":[{"name":"topic4","nativeSrc":"30389:6:161","nodeType":"YulIdentifier","src":"30389:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30296:14:161","suffix":"offset","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30356:14:161","suffix":"offset","valueSize":1},{"declaration":78117,"isOffset":true,"isSlot":false,"src":"30416:14:161","suffix":"offset","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30269:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"30329:6:161","valueSize":1},{"declaration":78287,"isOffset":false,"isSlot":false,"src":"30389:6:161","valueSize":1}],"flags":["memory-safe"],"id":78289,"nodeType":"InlineAssembly","src":"30230:216:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78290,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30460:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":78291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30476:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30460:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78295,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30596:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":78296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30612:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"30596:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78300,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30740:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":78301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30756:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"30740:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78305,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78142,"src":"30892:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":78306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30908:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"30892:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78310,"nodeType":"IfStatement","src":"30888:154:161","trueBody":{"id":78309,"nodeType":"Block","src":"30911:131:161","statements":[{"AST":{"nativeSrc":"30950:82:161","nodeType":"YulBlock","src":"30950:82:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30973:6:161","nodeType":"YulIdentifier","src":"30973:6:161"},{"name":"size","nativeSrc":"30981:4:161","nodeType":"YulIdentifier","src":"30981:4:161"},{"name":"topic1","nativeSrc":"30987:6:161","nodeType":"YulIdentifier","src":"30987:6:161"},{"name":"topic2","nativeSrc":"30995:6:161","nodeType":"YulIdentifier","src":"30995:6:161"},{"name":"topic3","nativeSrc":"31003:6:161","nodeType":"YulIdentifier","src":"31003:6:161"},{"name":"topic4","nativeSrc":"31011:6:161","nodeType":"YulIdentifier","src":"31011:6:161"}],"functionName":{"name":"log4","nativeSrc":"30968:4:161","nodeType":"YulIdentifier","src":"30968:4:161"},"nativeSrc":"30968:50:161","nodeType":"YulFunctionCall","src":"30968:50:161"},"nativeSrc":"30968:50:161","nodeType":"YulExpressionStatement","src":"30968:50:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30973:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30981:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30987:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30995:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"31003:6:161","valueSize":1},{"declaration":78287,"isOffset":false,"isSlot":false,"src":"31011:6:161","valueSize":1}],"flags":["memory-safe"],"id":78308,"nodeType":"InlineAssembly","src":"30925:107:161"}]}},"id":78311,"nodeType":"IfStatement","src":"30736:306:161","trueBody":{"id":78304,"nodeType":"Block","src":"30759:123:161","statements":[{"AST":{"nativeSrc":"30798:74:161","nodeType":"YulBlock","src":"30798:74:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30821:6:161","nodeType":"YulIdentifier","src":"30821:6:161"},{"name":"size","nativeSrc":"30829:4:161","nodeType":"YulIdentifier","src":"30829:4:161"},{"name":"topic1","nativeSrc":"30835:6:161","nodeType":"YulIdentifier","src":"30835:6:161"},{"name":"topic2","nativeSrc":"30843:6:161","nodeType":"YulIdentifier","src":"30843:6:161"},{"name":"topic3","nativeSrc":"30851:6:161","nodeType":"YulIdentifier","src":"30851:6:161"}],"functionName":{"name":"log3","nativeSrc":"30816:4:161","nodeType":"YulIdentifier","src":"30816:4:161"},"nativeSrc":"30816:42:161","nodeType":"YulFunctionCall","src":"30816:42:161"},"nativeSrc":"30816:42:161","nodeType":"YulExpressionStatement","src":"30816:42:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30821:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30829:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30835:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30843:6:161","valueSize":1},{"declaration":78284,"isOffset":false,"isSlot":false,"src":"30851:6:161","valueSize":1}],"flags":["memory-safe"],"id":78303,"nodeType":"InlineAssembly","src":"30773:99:161"}]}},"id":78312,"nodeType":"IfStatement","src":"30592:450:161","trueBody":{"id":78299,"nodeType":"Block","src":"30615:115:161","statements":[{"AST":{"nativeSrc":"30654:66:161","nodeType":"YulBlock","src":"30654:66:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30677:6:161","nodeType":"YulIdentifier","src":"30677:6:161"},{"name":"size","nativeSrc":"30685:4:161","nodeType":"YulIdentifier","src":"30685:4:161"},{"name":"topic1","nativeSrc":"30691:6:161","nodeType":"YulIdentifier","src":"30691:6:161"},{"name":"topic2","nativeSrc":"30699:6:161","nodeType":"YulIdentifier","src":"30699:6:161"}],"functionName":{"name":"log2","nativeSrc":"30672:4:161","nodeType":"YulIdentifier","src":"30672:4:161"},"nativeSrc":"30672:34:161","nodeType":"YulFunctionCall","src":"30672:34:161"},"nativeSrc":"30672:34:161","nodeType":"YulExpressionStatement","src":"30672:34:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30677:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30685:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30691:6:161","valueSize":1},{"declaration":78281,"isOffset":false,"isSlot":false,"src":"30699:6:161","valueSize":1}],"flags":["memory-safe"],"id":78298,"nodeType":"InlineAssembly","src":"30629:91:161"}]}},"id":78313,"nodeType":"IfStatement","src":"30456:586:161","trueBody":{"id":78294,"nodeType":"Block","src":"30479:107:161","statements":[{"AST":{"nativeSrc":"30518:58:161","nodeType":"YulBlock","src":"30518:58:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30541:6:161","nodeType":"YulIdentifier","src":"30541:6:161"},{"name":"size","nativeSrc":"30549:4:161","nodeType":"YulIdentifier","src":"30549:4:161"},{"name":"topic1","nativeSrc":"30555:6:161","nodeType":"YulIdentifier","src":"30555:6:161"}],"functionName":{"name":"log1","nativeSrc":"30536:4:161","nodeType":"YulIdentifier","src":"30536:4:161"},"nativeSrc":"30536:26:161","nodeType":"YulFunctionCall","src":"30536:26:161"},"nativeSrc":"30536:26:161","nodeType":"YulExpressionStatement","src":"30536:26:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78272,"isOffset":false,"isSlot":false,"src":"30541:6:161","valueSize":1},{"declaration":78261,"isOffset":false,"isSlot":false,"src":"30549:4:161","valueSize":1},{"declaration":78182,"isOffset":false,"isSlot":false,"src":"30555:6:161","valueSize":1}],"flags":["memory-safe"],"id":78293,"nodeType":"InlineAssembly","src":"30493:83:161"}]}},{"expression":{"hexValue":"74727565","id":78314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31059:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78115,"id":78315,"nodeType":"Return","src":"31052:11:161"}]},"documentation":{"id":78108,"nodeType":"StructuredDocumentation","src":"24152:3068:161","text":" @dev Tries to parse an event from the Sails framework and emit it in Solidity notation.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n Example of defining Solidity events in WASM contract based on Sails framework:\n ```rust\n #[event]\n #[derive(Clone, Debug, PartialEq, Encode, TypeInfo)]\n #[codec(crate = scale_codec)]\n #[scale_info(crate = scale_info)]\n pub enum CounterEvents {\n Added {\n #[indexed]\n source: ActorId,\n value: u32,\n },\n }\n ```\n User also generates \"Solidity ABI interface\" that allows services like Etherscan to decode events from `Mirror`\n (since we use the ABI interface as \"proxy implementation\"):\n ```solidity\n interface ICounter {\n event Added(address indexed source, uint32 value);\n // ... other events\n }\n ```\n Now let's imagine that the user wants to calculate something in WASM contract and send it to Ethereum as event,\n which will then be emitted by `Mirror` smart contract as showed on services like Etherscan:\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n ```\n All the `emit_eth_event` method in the Sails framework does is call the syscall\n `gcore::msg::send(destination=ETH_EVENT_ADDR, payload, value=0)`, where `payload`\n is encoded in Solidity notation as described below.\n Format in which the Sails framework sends events:\n - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`).\n specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called.\n - `bytes32 topic1` (required)\n should never match our event selectors!\n - `bytes32 topic2` (optional)\n - `bytes32 topic3` (optional)\n - `bytes32 topic4` (optional)\n - `bytes payload` (optional)\n contains encoded data of event in form of `abi.encode(...)`.\n @param _message The message to be parsed and emitted as Solidity event.\n @return isSailsEvent `true` in case of success and `false` in case of error (no matching event found)."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"27234:26:161","parameters":{"id":78112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78111,"mutability":"mutable","name":"_message","nameLocation":"27283:8:161","nodeType":"VariableDeclaration","scope":78317,"src":"27261:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78110,"nodeType":"UserDefinedTypeName","pathNode":{"id":78109,"name":"Gear.Message","nameLocations":["27261:4:161","27266:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"27261:12:161"},"referencedDeclaration":83101,"src":"27261:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"27260:32:161"},"returnParameters":{"id":78115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78114,"mutability":"mutable","name":"isSailsEvent","nameLocation":"27315:12:161","nodeType":"VariableDeclaration","scope":78317,"src":"27310:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78113,"name":"bool","nodeType":"ElementaryTypeName","src":"27310:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27309:19:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78448,"nodeType":"FunctionDefinition","src":"37037:1645:161","nodes":[],"body":{"id":78447,"nodeType":"Block","src":"37104:1578:161","nodes":[],"statements":[{"condition":{"expression":{"id":78324,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37118:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37127:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83100,"src":"37118:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78445,"nodeType":"Block","src":"38333:343:161","statements":[{"assignments":[78413],"declarations":[{"constant":false,"id":78413,"mutability":"mutable","name":"transferSuccess","nameLocation":"38352:15:161","nodeType":"VariableDeclaration","scope":78445,"src":"38347:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78412,"name":"bool","nodeType":"ElementaryTypeName","src":"38347:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78420,"initialValue":{"arguments":[{"expression":{"id":78415,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38385:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38394:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"38385:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78417,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38407:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38416:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38407:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78414,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"38370:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38370:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"38347:75:161"},{"condition":{"id":78422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38440:16:161","subExpression":{"id":78421,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78413,"src":"38441:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78431,"nodeType":"IfStatement","src":"38436:117:161","trueBody":{"id":78430,"nodeType":"Block","src":"38458:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78424,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38501:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38510:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"38501:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78426,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38523:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38532:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38523:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78423,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"38481:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38481:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78429,"nodeType":"EmitStatement","src":"38476:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":78433,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38578:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38587:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"38578:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78435,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38605:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38596:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78437,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38612:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38621:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38612:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38634:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"38612:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78440,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38638:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38647:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38638:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38660:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"38638:26:161","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":78432,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"38572:5:161","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":78443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38572:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78444,"nodeType":"EmitStatement","src":"38567:98:161"}]},"id":78446,"nodeType":"IfStatement","src":"37114:1562:161","trueBody":{"id":78411,"nodeType":"Block","src":"37133:1194:161","statements":[{"assignments":[78327],"declarations":[{"constant":false,"id":78327,"mutability":"mutable","name":"isSuccessReply","nameLocation":"37152:14:161","nodeType":"VariableDeclaration","scope":78411,"src":"37147:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78326,"name":"bool","nodeType":"ElementaryTypeName","src":"37147:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78335,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":78334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":78328,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37169:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37178:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"37169:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37191:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"37169:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":78332,"indexExpression":{"hexValue":"30","id":78331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37196:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37169:29:161","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37202:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37169:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37147:56:161"},{"assignments":[78337],"declarations":[{"constant":false,"id":78337,"mutability":"mutable","name":"payload","nameLocation":"37231:7:161","nodeType":"VariableDeclaration","scope":78411,"src":"37218:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78336,"name":"bytes","nodeType":"ElementaryTypeName","src":"37218:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78338,"nodeType":"VariableDeclarationStatement","src":"37218:20:161"},{"condition":{"id":78339,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78327,"src":"37257:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78362,"nodeType":"Block","src":"37338:348:161","statements":[{"expression":{"id":78360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78346,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37508:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":78349,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"37562:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73742_$","typeString":"type(contract ICallbacks)"}},"id":78350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37573:12:161","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73741,"src":"37562:23:161","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":78351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37586:8:161","memberName":"selector","nodeType":"MemberAccess","src":"37562:32:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":78352,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37605:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83084,"src":"37596:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78354,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37609:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37618:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"37609:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":78356,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37627:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37636:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"37627:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37649:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"37627:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":78347,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37518:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37522:18:161","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"37518:22:161","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":78359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37518:153:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"37508:163:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78361,"nodeType":"ExpressionStatement","src":"37508:163:161"}]},"id":78363,"nodeType":"IfStatement","src":"37253:433:161","trueBody":{"id":78345,"nodeType":"Block","src":"37273:59:161","statements":[{"expression":{"id":78343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78340,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37291:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78341,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37301:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37310:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83090,"src":"37301:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"37291:26:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78344,"nodeType":"ExpressionStatement","src":"37291:26:161"}]}},{"assignments":[78365,null],"declarations":[{"constant":false,"id":78365,"mutability":"mutable","name":"success","nameLocation":"37706:7:161","nodeType":"VariableDeclaration","scope":78411,"src":"37701:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78364,"name":"bool","nodeType":"ElementaryTypeName","src":"37701:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78375,"initialValue":{"arguments":[{"id":78373,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78337,"src":"37781:7:161","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":{"expression":{"id":78366,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37718:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37727:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37718:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37739:4:161","memberName":"call","nodeType":"MemberAccess","src":"37718:25:161","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":78372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37749:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":78370,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37765:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37774:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"37765:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"37718:62:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37718:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"37700:89:161"},{"condition":{"id":78377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37808:8:161","subExpression":{"id":78376,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78365,"src":"37809:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78410,"nodeType":"IfStatement","src":"37804:513:161","trueBody":{"id":78409,"nodeType":"Block","src":"37818:499:161","statements":[{"assignments":[78379],"declarations":[{"constant":false,"id":78379,"mutability":"mutable","name":"transferSuccess","nameLocation":"37841:15:161","nodeType":"VariableDeclaration","scope":78409,"src":"37836:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78378,"name":"bool","nodeType":"ElementaryTypeName","src":"37836:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78386,"initialValue":{"arguments":[{"expression":{"id":78381,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37874:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37883:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37874:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78383,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37896:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37905:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"37896:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78380,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"37859:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37859:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37836:75:161"},{"condition":{"id":78388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37933:16:161","subExpression":{"id":78387,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78379,"src":"37934:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78397,"nodeType":"IfStatement","src":"37929:125:161","trueBody":{"id":78396,"nodeType":"Block","src":"37951:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78390,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"37998:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38007:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83087,"src":"37998:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78392,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38020:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38029:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38020:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78389,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"37978:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37978:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78395,"nodeType":"EmitStatement","src":"37973:62:161"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78399,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38233:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38242:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"38233:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78401,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38249:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38258:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38249:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38271:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83133,"src":"38249:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78404,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78321,"src":"38275:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38284:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83097,"src":"38275:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83137_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38297:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"38275:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":78398,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"38217:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38217:85:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78408,"nodeType":"EmitStatement","src":"38212:90:161"}]}}]}}]},"documentation":{"id":78318,"nodeType":"StructuredDocumentation","src":"31076:5956:161","text":" @dev Internal function to send reply message.\n Non-zero value always sent since never goes to mailbox.\n Emits `Reply` event if `_message.call = false`.\n If `_message.call = true`, the call will be made to `_message.destination` with\n gas limit of 500_000 to prevent DoS attacks and with `_message.value`.\n The `_message.replyDetails` will also be evaluated to determine the reply's success.\n If `gear_core::message::ReplyCode` is successful, `_message.payload` will be used.\n If unsuccessful, `payload = ICallbacks.onErrorReply(_message.id, _message.payload, _message.replyDetails.code)`\n will be used and the appropriate method on `_message.destination` will be called.\n Function will also always attempt to send `_message.value`. If this fails for some reason,\n the `ReplyTransferFailed` event will be emitted.\n If call fails, then `ReplyCallFailed` event will be emitted.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n All the contract method does is return `u32` as result (reply):\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User also generates \"Solidity Callback Interface\" and implements own `CounterCaller` smart contract,\n which will handle reply hooks in methods starting with `replyOn_`:\n ```solidity\n interface ICounterCallbacks {\n function replyOn_init(bytes32 messageId) external;\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external;\n // ... other methods\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode) external payable;\n }\n contract CounterCaller is ICounterCallbacks {\n ICounter public immutable MIRROR;\n constructor(ICounter _mirror) {\n MIRROR = _mirror;\n }\n modifier onlyMirror() {\n _onlyMirror();\n _;\n }\n function _onlyMirror() internal view {\n require(msg.sender == address(MIRROR));\n }\n // Call `Counter` constructor on our platform\n function init(uint32 counter) external {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.init(true, counter);\n }\n function replyOn_init(bytes32 messageId) external onlyMirror {\n // ...\n }\n // Compute `Counter.add(uint32 value) -> uint32 reply` on our platform\n mapping(bytes32 messageId => bool knownMessage) public counterAddInputs;\n mapping(bytes32 messageId => uint32 output) public counterAddResults;\n function counterAdd(uint32 value) external returns (bytes32 messageId) {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.counterAdd(true, value);\n counterAddInputs[_messageId] = true;\n messageId = _messageId;\n }\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external onlyMirror {\n counterAddResults[messageId] = reply;\n }\n // Handle `Counter` errors on our platform\n event ErrorReply(bytes32 messageId, bytes payload, bytes4 replyCode);\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode)\n external\n payable\n onlyMirror\n {\n emit ErrorReply(messageId, payload, replyCode);\n }\n }\n ```\n User calls `CounterCaller.counterAdd(uint32 value)`, and the smart contract calls `ICounter.counterAdd(bool _callReply=true, uint32 value)`.\n Result calculated in WASM smart contract on Sails framework in `Counter.add(uint32 value) -> uint32 reply` method will be passed to\n `replyOn_counterAdd(bytes32 messageId, uint32 reply)`.\n @param _message The reply message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"37046:17:161","parameters":{"id":78322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78321,"mutability":"mutable","name":"_message","nameLocation":"37086:8:161","nodeType":"VariableDeclaration","scope":78448,"src":"37064:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78320,"nodeType":"UserDefinedTypeName","pathNode":{"id":78319,"name":"Gear.Message","nameLocations":["37064:4:161","37069:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83101,"src":"37064:12:161"},"referencedDeclaration":83101,"src":"37064:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83101_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"37063:32:161"},"returnParameters":{"id":78323,"nodeType":"ParameterList","parameters":[],"src":"37104:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78561,"nodeType":"FunctionDefinition","src":"39220:1028:161","nodes":[],"body":{"id":78560,"nodeType":"Block","src":"39315:933:161","nodes":[],"statements":[{"assignments":[78459],"declarations":[{"constant":false,"id":78459,"mutability":"mutable","name":"claimsLen","nameLocation":"39333:9:161","nodeType":"VariableDeclaration","scope":78560,"src":"39325:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78458,"name":"uint256","nodeType":"ElementaryTypeName","src":"39325:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78462,"initialValue":{"expression":{"id":78460,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78453,"src":"39345:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39353:6:161","memberName":"length","nodeType":"MemberAccess","src":"39345:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39325:34:161"},{"assignments":[78464],"declarations":[{"constant":false,"id":78464,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"39377:16:161","nodeType":"VariableDeclaration","scope":78560,"src":"39369:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78463,"name":"uint256","nodeType":"ElementaryTypeName","src":"39369:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78468,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78465,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"src":"39396:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39408:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39396:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39369:41:161"},{"assignments":[78470],"declarations":[{"constant":false,"id":78470,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"39428:18:161","nodeType":"VariableDeclaration","scope":78560,"src":"39420:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78469,"name":"uint256","nodeType":"ElementaryTypeName","src":"39420:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78475,"initialValue":{"arguments":[{"id":78473,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78464,"src":"39465:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78471,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39449:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39456:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"39449:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39449:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39420:62:161"},{"assignments":[78477],"declarations":[{"constant":false,"id":78477,"mutability":"mutable","name":"offset","nameLocation":"39500:6:161","nodeType":"VariableDeclaration","scope":78560,"src":"39492:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78476,"name":"uint256","nodeType":"ElementaryTypeName","src":"39492:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78479,"initialValue":{"hexValue":"30","id":78478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39509:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39492:18:161"},{"body":{"id":78551,"nodeType":"Block","src":"39561:588:161","statements":[{"assignments":[78494],"declarations":[{"constant":false,"id":78494,"mutability":"mutable","name":"claim","nameLocation":"39600:5:161","nodeType":"VariableDeclaration","scope":78551,"src":"39575:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":78493,"nodeType":"UserDefinedTypeName","pathNode":{"id":78492,"name":"Gear.ValueClaim","nameLocations":["39575:4:161","39580:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"39575:15:161"},"referencedDeclaration":83207,"src":"39575:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":78498,"initialValue":{"baseExpression":{"id":78495,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78453,"src":"39608:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78497,"indexExpression":{"id":78496,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39616:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39608:10:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"39575:43:161"},{"assignments":[78500],"declarations":[{"constant":false,"id":78500,"mutability":"mutable","name":"claimHash","nameLocation":"39640:9:161","nodeType":"VariableDeclaration","scope":78551,"src":"39632:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39632:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78510,"initialValue":{"arguments":[{"expression":{"id":78503,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39672:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39678:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"39672:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78505,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39689:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39695:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"39689:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78507,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39708:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39714:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"39708:11:161","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":78501,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"39652:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":78502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39657:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":83413,"src":"39652:19:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":78509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39652:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39632:88:161"},{"expression":{"arguments":[{"id":78514,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78470,"src":"39760:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78515,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"39780:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78516,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78500,"src":"39788:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78511,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39734:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39741:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"39734:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39734:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78518,"nodeType":"ExpressionStatement","src":"39734:64:161"},{"id":78523,"nodeType":"UncheckedBlock","src":"39812:55:161","statements":[{"expression":{"id":78521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78519,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"39840:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39850:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39840:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78522,"nodeType":"ExpressionStatement","src":"39840:12:161"}]},{"assignments":[78525],"declarations":[{"constant":false,"id":78525,"mutability":"mutable","name":"success","nameLocation":"39886:7:161","nodeType":"VariableDeclaration","scope":78551,"src":"39881:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78524,"name":"bool","nodeType":"ElementaryTypeName","src":"39881:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78532,"initialValue":{"arguments":[{"expression":{"id":78527,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39911:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39917:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"39911:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78529,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"39930:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39936:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"39930:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78526,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78661,"src":"39896:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39896:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"39881:61:161"},{"condition":{"id":78533,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78525,"src":"39960:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78549,"nodeType":"Block","src":"40055:84:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78543,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40095:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40101:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"40095:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78545,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40112:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40118:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"40112:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78542,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"40078:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40078:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78548,"nodeType":"EmitStatement","src":"40073:51:161"}]},"id":78550,"nodeType":"IfStatement","src":"39956:183:161","trueBody":{"id":78541,"nodeType":"Block","src":"39969:80:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78535,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40005:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40011:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83202,"src":"40005:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78537,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78494,"src":"40022:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40028:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83206,"src":"40022:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78534,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"39992:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39992:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78540,"nodeType":"EmitStatement","src":"39987:47:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39541:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78485,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"src":"39545:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39541:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78552,"initializationExpression":{"assignments":[78481],"declarations":[{"constant":false,"id":78481,"mutability":"mutable","name":"i","nameLocation":"39534:1:161","nodeType":"VariableDeclaration","scope":78552,"src":"39526:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78480,"name":"uint256","nodeType":"ElementaryTypeName","src":"39526:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78483,"initialValue":{"hexValue":"30","id":78482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39538:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39526:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39556:3:161","subExpression":{"id":78487,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"39556:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78489,"nodeType":"ExpressionStatement","src":"39556:3:161"},"nodeType":"ForStatement","src":"39521:628:161"},{"expression":{"arguments":[{"id":78555,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78470,"src":"40201:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40221:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78557,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78464,"src":"40224:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78553,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"40166:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40173:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"40166:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78457,"id":78559,"nodeType":"Return","src":"40159:82:161"}]},"documentation":{"id":78449,"nodeType":"StructuredDocumentation","src":"38787:428:161","text":" @dev Internal function to claim values from messages in mailbox.\n It transfers value to each claim destination and emits appropriate events:\n - `ValueClaimed` event is emitted if transfer is successful\n - `ValueClaimFailed` event is emitted if transfer fails\n @param _claims The array of value claims to be claimed.\n @return claimsHash The hash of the claimed values."},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"39229:12:161","parameters":{"id":78454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78453,"mutability":"mutable","name":"_claims","nameLocation":"39269:7:161","nodeType":"VariableDeclaration","scope":78561,"src":"39242:34:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":78451,"nodeType":"UserDefinedTypeName","pathNode":{"id":78450,"name":"Gear.ValueClaim","nameLocations":["39242:4:161","39247:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83207,"src":"39242:15:161"},"referencedDeclaration":83207,"src":"39242:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83207_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":78452,"nodeType":"ArrayTypeName","src":"39242:17:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83207_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"39241:36:161"},"returnParameters":{"id":78457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78456,"mutability":"mutable","name":"claimsHash","nameLocation":"39303:10:161","nodeType":"VariableDeclaration","scope":78561,"src":"39295:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39295:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39294:20:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78594,"nodeType":"FunctionDefinition","src":"40514:586:161","nodes":[],"body":{"id":78593,"nodeType":"Block","src":"40578:522:161","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":78571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78569,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77317,"src":"40643:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"40652:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"40643:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78572,"nodeType":"ExpressionStatement","src":"40643:13:161"},{"expression":{"id":78575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78573,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77320,"src":"40666:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78574,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78564,"src":"40678:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"40666:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78576,"nodeType":"ExpressionStatement","src":"40666:22:161"},{"assignments":[78578,78580],"declarations":[{"constant":false,"id":78578,"mutability":"mutable","name":"value","nameLocation":"40797:5:161","nodeType":"VariableDeclaration","scope":78593,"src":"40789:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78577,"name":"uint128","nodeType":"ElementaryTypeName","src":"40789:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78580,"mutability":"mutable","name":"success","nameLocation":"40809:7:161","nodeType":"VariableDeclaration","scope":78593,"src":"40804:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78579,"name":"bool","nodeType":"ElementaryTypeName","src":"40804:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":78583,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78581,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"40820:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":78582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40820:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"40788:65:161"},{"condition":{"id":78585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"40867:8:161","subExpression":{"id":78584,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78580,"src":"40868:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78592,"nodeType":"IfStatement","src":"40863:231:161","trueBody":{"id":78591,"nodeType":"Block","src":"40877:217:161","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":78587,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78564,"src":"41065:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78588,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78578,"src":"41077:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78586,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"41028:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41028:55:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78590,"nodeType":"EmitStatement","src":"41023:60:161"}]}}]},"documentation":{"id":78562,"nodeType":"StructuredDocumentation","src":"40311:198:161","text":" @dev Sets the inheritor address, sets exited flag to `true` and\n transfer all available balance to the inheritor.\n @param _inheritor The address of the inheritor."},"implemented":true,"kind":"function","modifiers":[{"id":78567,"kind":"modifierInvocation","modifierName":{"id":78566,"name":"onlyIfActive","nameLocations":["40565:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77392,"src":"40565:12:161"},"nodeType":"ModifierInvocation","src":"40565:12:161"}],"name":"_setInheritor","nameLocation":"40523:13:161","parameters":{"id":78565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78564,"mutability":"mutable","name":"_inheritor","nameLocation":"40545:10:161","nodeType":"VariableDeclaration","scope":78594,"src":"40537:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78563,"name":"address","nodeType":"ElementaryTypeName","src":"40537:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40536:20:161"},"returnParameters":{"id":78568,"nodeType":"ParameterList","parameters":[],"src":"40578:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78609,"nodeType":"FunctionDefinition","src":"41203:281:161","nodes":[],"body":{"id":78608,"nodeType":"Block","src":"41257:227:161","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":78602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78600,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"41323:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78601,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78597,"src":"41335:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41323:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78603,"nodeType":"ExpressionStatement","src":"41323:22:161"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":78605,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77311,"src":"41467:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78604,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"41454:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41454:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78607,"nodeType":"EmitStatement","src":"41449:28:161"}]},"documentation":{"id":78595,"nodeType":"StructuredDocumentation","src":"41106:92:161","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"41212:16:161","parameters":{"id":78598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78597,"mutability":"mutable","name":"_stateHash","nameLocation":"41237:10:161","nodeType":"VariableDeclaration","scope":78609,"src":"41229:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78596,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41229:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41228:20:161"},"returnParameters":{"id":78599,"nodeType":"ParameterList","parameters":[],"src":"41257:0:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78631,"nodeType":"FunctionDefinition","src":"41658:182:161","nodes":[],"body":{"id":78630,"nodeType":"Block","src":"41730:110:161","nodes":[],"statements":[{"assignments":[78619],"declarations":[{"constant":false,"id":78619,"mutability":"mutable","name":"wvaraAddr","nameLocation":"41748:9:161","nodeType":"VariableDeclaration","scope":78630,"src":"41740:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78618,"name":"address","nodeType":"ElementaryTypeName","src":"41740:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78625,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78621,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78612,"src":"41768:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78620,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"41760:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74990_$","typeString":"type(contract IRouter)"}},"id":78622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41760:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74990","typeString":"contract IRouter"}},"id":78623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41780:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74684,"src":"41760:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41760:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"41740:53:161"},{"expression":{"arguments":[{"id":78627,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78619,"src":"41823:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78626,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"41810:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":78628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41810:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"functionReturnParameters":78617,"id":78629,"nodeType":"Return","src":"41803:30:161"}]},"documentation":{"id":78610,"nodeType":"StructuredDocumentation","src":"41526:127:161","text":" @dev Get the `WrappedVara` contract instance.\n @param routerAddr The address of the `Router` contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"41667:6:161","parameters":{"id":78613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78612,"mutability":"mutable","name":"routerAddr","nameLocation":"41682:10:161","nodeType":"VariableDeclaration","scope":78631,"src":"41674:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78611,"name":"address","nodeType":"ElementaryTypeName","src":"41674:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41673:20:161"},"returnParameters":{"id":78617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78631,"src":"41716:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":78615,"nodeType":"UserDefinedTypeName","pathNode":{"id":78614,"name":"IWrappedVara","nameLocations":["41716:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"41716:12:161"},"referencedDeclaration":75006,"src":"41716:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"41715:14:161"},"scope":78723,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78661,"nodeType":"FunctionDefinition","src":"42082:253:161","nodes":[],"body":{"id":78660,"nodeType":"Block","src":"42165:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78641,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78636,"src":"42179:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42188:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42179:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78657,"nodeType":"IfStatement","src":"42175:133:161","trueBody":{"id":78656,"nodeType":"Block","src":"42191:117:161","statements":[{"assignments":[78645,null],"declarations":[{"constant":false,"id":78645,"mutability":"mutable","name":"success","nameLocation":"42211:7:161","nodeType":"VariableDeclaration","scope":78656,"src":"42206:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78644,"name":"bool","nodeType":"ElementaryTypeName","src":"42206:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78653,"initialValue":{"arguments":[{"hexValue":"","id":78651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42266:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":78646,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"42223:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42235:4:161","memberName":"call","nodeType":"MemberAccess","src":"42223:16:161","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":78650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":78648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42245:5:161","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":78649,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78636,"src":"42259:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"42223:42:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42223:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"42205:64:161"},{"expression":{"id":78654,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78645,"src":"42290:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78640,"id":78655,"nodeType":"Return","src":"42283:14:161"}]}},{"expression":{"hexValue":"74727565","id":78658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42324:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78640,"id":78659,"nodeType":"Return","src":"42317:11:161"}]},"documentation":{"id":78632,"nodeType":"StructuredDocumentation","src":"41846:231:161","text":" @dev Transfer ETH to destination address.\n It has gas limit of 5_000 to prevent DoS attacks.\n @param destination The address to transfer ETH to.\n @param value The amount of ETH to transfer."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"42091:14:161","parameters":{"id":78637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78634,"mutability":"mutable","name":"destination","nameLocation":"42114:11:161","nodeType":"VariableDeclaration","scope":78661,"src":"42106:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78633,"name":"address","nodeType":"ElementaryTypeName","src":"42106:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78636,"mutability":"mutable","name":"value","nameLocation":"42135:5:161","nodeType":"VariableDeclaration","scope":78661,"src":"42127:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78635,"name":"uint128","nodeType":"ElementaryTypeName","src":"42127:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"42105:36:161"},"returnParameters":{"id":78640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78661,"src":"42159:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78638,"name":"bool","nodeType":"ElementaryTypeName","src":"42159:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42158:6:161"},"scope":78723,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78722,"nodeType":"FunctionDefinition","src":"42636:1106:161","nodes":[],"body":{"id":78721,"nodeType":"Block","src":"42678:1064:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42692:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42696:5:161","memberName":"value","nodeType":"MemberAccess","src":"42692:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42704:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42692:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42709:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42713:4:161","memberName":"data","nodeType":"MemberAccess","src":"42709:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42718:6:161","memberName":"length","nodeType":"MemberAccess","src":"42709:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42728:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42709:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42692:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42853:8:161","subExpression":{"id":78690,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"42854:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78692,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42865:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42869:4:161","memberName":"data","nodeType":"MemberAccess","src":"42865:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42874:6:161","memberName":"length","nodeType":"MemberAccess","src":"42865:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":78695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42884:4:161","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"42865:23:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42853:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78718,"nodeType":"Block","src":"43683:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78715,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74289,"src":"43704:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43704:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78717,"nodeType":"RevertStatement","src":"43697:28:161"}]},"id":78719,"nodeType":"IfStatement","src":"42849:887:161","trueBody":{"id":78714,"nodeType":"Block","src":"42890:787:161","statements":[{"assignments":[78700],"declarations":[{"constant":false,"id":78700,"mutability":"mutable","name":"callReply","nameLocation":"43353:9:161","nodeType":"VariableDeclaration","scope":78714,"src":"43345:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78699,"name":"uint256","nodeType":"ElementaryTypeName","src":"43345:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"documentation":" @dev We only allow arbitrary calls to `!isSmall` `Mirror` contracts,\n which are more likely to come from their ABI interfaces.\n The minimum call data length is 0x24 (36 bytes) because:\n - 0x04 (4 bytes) for the function selector [0x00..0x04)\n - 0x20 (32 bytes) for the bool `callReply` [0x04..0x24)","id":78701,"nodeType":"VariableDeclarationStatement","src":"43345:17:161"},{"AST":{"nativeSrc":"43402:63:161","nodeType":"YulBlock","src":"43402:63:161","statements":[{"nativeSrc":"43420:31:161","nodeType":"YulAssignment","src":"43420:31:161","value":{"arguments":[{"kind":"number","nativeSrc":"43446:4:161","nodeType":"YulLiteral","src":"43446:4:161","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"43433:12:161","nodeType":"YulIdentifier","src":"43433:12:161"},"nativeSrc":"43433:18:161","nodeType":"YulFunctionCall","src":"43433:18:161"},"variableNames":[{"name":"callReply","nativeSrc":"43420:9:161","nodeType":"YulIdentifier","src":"43420:9:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78700,"isOffset":false,"isSlot":false,"src":"43420:9:161","valueSize":1}],"flags":["memory-safe"],"id":78702,"nodeType":"InlineAssembly","src":"43377:88:161"},{"assignments":[78704],"declarations":[{"constant":false,"id":78704,"mutability":"mutable","name":"messageId","nameLocation":"43487:9:161","nodeType":"VariableDeclaration","scope":78714,"src":"43479:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43479:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78712,"initialValue":{"arguments":[{"expression":{"id":78706,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"43512:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43516:4:161","memberName":"data","nodeType":"MemberAccess","src":"43512:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78708,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78700,"src":"43522:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43535:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43522:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78705,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77922,"src":"43499:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":78711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43499:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43479:58:161"},{"AST":{"nativeSrc":"43577:90:161","nodeType":"YulBlock","src":"43577:90:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43602:4:161","nodeType":"YulLiteral","src":"43602:4:161","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"43608:9:161","nodeType":"YulIdentifier","src":"43608:9:161"}],"functionName":{"name":"mstore","nativeSrc":"43595:6:161","nodeType":"YulIdentifier","src":"43595:6:161"},"nativeSrc":"43595:23:161","nodeType":"YulFunctionCall","src":"43595:23:161"},"nativeSrc":"43595:23:161","nodeType":"YulExpressionStatement","src":"43595:23:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43642:4:161","nodeType":"YulLiteral","src":"43642:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"43648:4:161","nodeType":"YulLiteral","src":"43648:4:161","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"43635:6:161","nodeType":"YulIdentifier","src":"43635:6:161"},"nativeSrc":"43635:18:161","nodeType":"YulFunctionCall","src":"43635:18:161"},"nativeSrc":"43635:18:161","nodeType":"YulExpressionStatement","src":"43635:18:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78704,"isOffset":false,"isSlot":false,"src":"43608:9:161","valueSize":1}],"flags":["memory-safe"],"id":78713,"nodeType":"InlineAssembly","src":"43552:115:161"}]}},"id":78720,"nodeType":"IfStatement","src":"42688:1048:161","trueBody":{"id":78689,"nodeType":"Block","src":"42731:112:161","statements":[{"assignments":[78678],"declarations":[{"constant":false,"id":78678,"mutability":"mutable","name":"value","nameLocation":"42753:5:161","nodeType":"VariableDeclaration","scope":78689,"src":"42745:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78677,"name":"uint128","nodeType":"ElementaryTypeName","src":"42745:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78684,"initialValue":{"arguments":[{"expression":{"id":78681,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42769:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42773:5:161","memberName":"value","nodeType":"MemberAccess","src":"42769:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42761:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":78679,"name":"uint128","nodeType":"ElementaryTypeName","src":"42761:7:161","typeDescriptions":{}}},"id":78683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42761:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"42745:34:161"},{"eventCall":{"arguments":[{"id":78686,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78678,"src":"42826:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78685,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"42799:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42799:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78688,"nodeType":"EmitStatement","src":"42794:38:161"}]}}]},"documentation":{"id":78662,"nodeType":"StructuredDocumentation","src":"42341:290:161","text":" @dev Fallback function for top-up owned balance in native currency (ETH)\n and for sending arbitrary calls to `!isSmall` `Mirror` contracts\n as messages to Sails framework.\n See the description of `Mirror.isSmall` field for details."},"implemented":true,"kind":"fallback","modifiers":[{"id":78665,"kind":"modifierInvocation","modifierName":{"id":78664,"name":"whenNotPaused","nameLocations":["42664:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77453,"src":"42664:13:161"},"nodeType":"ModifierInvocation","src":"42664:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78663,"nodeType":"ParameterList","parameters":[],"src":"42644:2:161"},"returnParameters":{"id":78666,"nodeType":"ParameterList","parameters":[],"src":"42678:0:161"},"scope":78723,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77300,"name":"IMirror","nameLocations":["2640:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"2640:7:161"},"id":77301,"nodeType":"InheritanceSpecifier","src":"2640:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":77299,"nodeType":"StructuredDocumentation","src":"621:1999:161","text":" @dev Mirror smart contract is responsible for storing the minimal state of programs on our platform\n and transitioning from one state to another by calling `performStateTransition(...)`. It's built\n on actor-model architecture, and in Ethereum, we implement this through \"request-response\" model.\n This means we have two types of events:\n - \"Requested\" events - when user calls one of the methods marked as \"Primary Gear logic\" we emit such an event,\n and all our nodes process it off-chain\n - \"Responded\" events - when we receive response from our nodes and transmit it back to Ethereum.\n All logic called within `performStateTransition(...)` and leading to methods marked as\n \"Private calls related to performStateTransition\" are such events.\n It's important not to confuse these two, as this is how we implement the actor model in Ethereum.\n Mirror economic model has two balances:\n - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`.\n This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`.\n - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain.\n It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform.\n You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the\n Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users\n can use it for free. This is called the \"reverse-gas model\". Developer can also require the presence of `value` in\n the owned balance when calling methods in a WASM smart contract to protect their program from spam."},"fullyImplemented":true,"linearizedBaseContracts":[78723,74395],"name":"Mirror","nameLocation":"2630:6:161","scope":78724,"usedErrors":[74253,74256,74259,74262,74265,74268,74271,74274,74277,74279,74281,74283,74285,74287,74289],"usedEvents":[74141,74154,74165,74172,74177,74182,74193,74202,74213,74222,74229,74236,74243,74250]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":161} \ 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":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUpWithPermit","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"},{"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":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"transitionHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"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":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"messageId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"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":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"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"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"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":"ReplyCallFailed","inputs":[{"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":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"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":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"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":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008d57601f611d8138819003918201601f19168301916001600160401b038311848410176100915780849260209460405283398101031261008d57516001600160a01b038116810361008d57608052604051611cdb90816100a682396080518181816102390152818161031d015281816113e90152818161148a0152818161152d01526115e30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:41123:161:-:0;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;7624:16;;2621:41123;;;;;;;;7624:16;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;-1:-1:-1;2621:41123:161;;;;;-1:-1:-1;2621:41123:161","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561017f575b610016611518565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b5565b60015415801590610149575b1561013a576001600160801b03341661009a81611472565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461086a57806336a52a181461083d57806342129d001461071b5780635ce6c327146106f8578063701da98e146106db578063704ed542146106855780637a8e0cdd146105ef57806391d5a64c146105945780639ce110d71461056b578063affed0e01461054d578063bfa28576146103f6578063c6049692146102d6578063e43f34331461026b5763f887ea4014610224575061000e565b346102685780600319360112610268576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b5034610268578060031936011261026857610284611518565b60025460ff8116156102c7576102b090476001600160801b03169060081c6001600160a01b03166118cc565b156102b85780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b50346102685760a0366003190112610268576102f061132d565b6044359060ff82168092036103f257610307611518565b61030f6115b5565b826001600160a01b036103417f00000000000000000000000000000000000000000000000000000000000000006116aa565b16803b156103ee57819060e46040518094819363d505accf60e01b83523360048401523060248401526001600160801b038816988960448501526024356064850152608484015260643560a484015260843560c48401525af16103c4575b505f516020611cbb5f395f51905f52916103ba6020926115d0565b604051908152a180f35b916103ba846103e4602094965f516020611cbb5f395f51905f52966113c6565b949250509161039f565b5080fd5b8280fd5b5034610268576080366003190112610268576004356001600160a01b038116908190036103ee576024356001600160a01b038116908190036103f25760443580151580910361054957606435926001600160801b0384168094036105455761045c6113e7565b600354906001600160a01b0382166105365760ff8260a01c16610527577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b038416610518576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55806104fd575080f35b60205f516020611cbb5f395f51905f5291604051908152a180f35b638778dcd360e01b8752600487fd5b6325f368db60e11b8652600486fd5b63f20d240560e01b8652600486fd5b8480fd5b8380fd5b50346102685780600319360112610268576020600154604051908152f35b50346102685780600319360112610268576003546040516001600160a01b039091168152602090f35b5034610268576020366003190112610268576105ae611518565b6105b66115b5565b6105be611691565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b506040366003190112610268576024356001600160401b0381116103ee5761063c7fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611300565b610647929192611518565b61064f6115b5565b610657611691565b6001600160801b0334169061066b82611472565b61067f604051928392339660043585611398565b0390a280f35b5034610268576020366003190112610268575f516020611cbb5f395f51905f5260206106af61132d565b6106b7611518565b6106bf6115b5565b6106c8816115d0565b6001600160801b0360405191168152a180f35b503461026857806003193601126102685760209054604051908152f35b5034610268578060031936011261026857602060ff600254166040519015158152f35b506040366003190112610268576004356001600160401b0381116103ee57610747903690600401611300565b91906024358015158091036103f25761075e611518565b6107666115b5565b60015415801590610829575b1561081a576001600160801b0334169161078b83611472565b6001543060601b85528060145260348520945f1982146108065750916107ed6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611378565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610772565b503461026857806003193601126102685760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f08576001600160401b0360043511610f08576004353603610100600319820112610f08576108a16113e7565b6108af600435600401611343565b306001600160a01b03909116036112f1576108ce60a460043501611357565b6112d6575b60043560e401356022198201811215610f08576001600160401b03600482813501013511610f0857600481813501013560051b3603602482600435010113610f08576004803582010135600581901b8190046020149015171561012657610943600482813501013560051b61172a565b5f93845b6004848135010135861015610f2057600586901b600435850190810160240135969036036101021901871215610f085760e06023196004358701890136030112610f08576040519160c083018381106001600160401b03821117610f0c57604052600435860188016024810135845260440135906001600160a01b0382168203610f085760208401918252606460043588018a0101356001600160401b038111610f085760209060048b8a8235010101010136601f82011215610f0857610a159036906020813591016114ca565b6040850190815291608460043589018b0101356001600160801b0381168103610f085760608601908152604060a3196004358b018d0136030112610f085760405195604087018781106001600160401b03821117610f0c576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0857602088019182526080810188905260e46004358c018e01013580151596878203610f0857600199602098610b43958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113c6565b51902086820152019660a4600435870182010135610b765760206004610b6f9288823501010101611796565b0194610947565b610b8860e46004358801830101611357565b15610dd9576001600160f81b0319610ba860c46004358901840101611781565b5f1a60f81b161586826060925f14610d51575f9250610be160606004610be893869582350101010160206004878d82350101010161174f565b36916114ca565b886001600160801b03610c166080600488610c0a604483358801830101611343565b95823501010101611364565b16602083519301916207a120f1610c2b611443565b5015610c38575b50610b6f565b610c65610c4d60446004358901840101611343565b610c5f60846004358a01850101611364565b906118cc565b15610ce2575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610ca060846004358a01850101611364565b60a060046001600160e01b0319610cbe60c483358e01890101611781565b16956001600160801b038551941684528b823501010101356020820152a25f610c32565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d1560446004358901840101611343565b610d2760846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c6b565b5f928392610dd491610db7610d7360043584018601606481019060240161174f565b610d8560c46004358701890101611781565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611378565b9063ffffffff60e01b16606483015203601f1981018352826113c6565b610be8565b610dee610c4d60446004358901840101611343565b15610e99575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2c60043588018301606481019060240161174f565b610e3e60846004358b01860101611364565b60a060046001600160e01b0319610e5c60c483358f018a0101611781565b16966001600160801b03610e7d604051978897606089526060890191611378565b941660208601528c8235010101013560408301520390a2610b6f565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ecc60446004358901840101611343565b610ede60846004358a01850101611364565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610df4565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610f085760043501916004830135916001600160401b038311610f08576060830236036024850113610f08578260051b908382046020148415171561012657610f8c829594939261172a565b915f955f965b858810156110c957610fca949596976001916004606083028b01019061102c611023602080850135938c816060604089019e8f611343565b980197610fd689611364565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b166054820152604481526110166064826113c6565b5190209101520199611343565b610c5f84611364565b156110805761105b7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611364565b604080519283526001600160801b0391909116602083015290a15b0196959493610f92565b6110aa7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611364565b604080519283526001600160801b0391909116602083015290a1611076565b50832091604460043501916110dd83611357565b156112a35750916020926110f5606460043501611343565b916110fe6115b5565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111499183911c6001600160a01b03166118cc565b15611256575b50505b8254602460043501359384809203611225575b505061117e611178600435600401611343565b94611357565b61118c606460043501611343565b61119a608460043501611364565b906111a960a460043501611357565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261121a60ba826113c6565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611165565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061114f565b906001600160a01b036112ba600435606401611343565b166112c757602093611152565b6304c3c7a160e41b5f5260045ffd5b6112ec6112e7608460043501611364565b611472565b6108d3565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f08578235916001600160401b038311610f085760208381860195010111610f0857565b600435906001600160801b0382168203610f0857565b356001600160a01b0381168103610f085790565b358015158103610f085790565b356001600160801b0381168103610f085790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113bf916001600160801b03939796978652606060208701526060860191611378565b9416910152565b90601f801991011681019081106001600160401b03821117610f0c57604052565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361141957565b6375f48d7160e11b5f5260045ffd5b6001600160401b038111610f0c57601f01601f191660200190565b3d1561146d573d9061145482611428565b9161146260405193846113c6565b82523d5f602084013e565b606090565b6001600160801b0316806114835750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114b3611443565b50156114bb57565b6308eb200360e41b5f5260045ffd5b9291926114d682611428565b916114e460405193846113c6565b829481845281830111610f08578281602093845f960137010152565b90816020910312610f0857518015158103610f085790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115aa575f9161157b575b5061156c57565b63d93c066560e01b5f5260045ffd5b61159d915060203d6020116115a3575b61159581836113c6565b810190611500565b5f611565565b503d61158b565b6040513d5f823e3d90fd5b60ff600254166115c157565b630d304b8160e31b5f5260045ffd5b6001600160801b0316806115e15750565b7f00000000000000000000000000000000000000000000000000000000000000009060209060646001600160a01b03611619856116aa565b6040516323b872dd60e01b81523360048201526001600160a01b0390961660248701526044860193909352849283915f91165af19081156115aa575f91611672575b501561166357565b6303a25d1960e31b5f5260045ffd5b61168b915060203d6020116115a35761159581836113c6565b5f61165b565b6001541561169b57565b631a2efd3560e31b5f5260045ffd5b60405163088f50cf60e41b815290602090829060049082906001600160a01b03165afa9081156115aa575f916116e8575b506001600160a01b031690565b90506020813d602011611722575b81611703602093836113c6565b81010312610f0857516001600160a01b0381168103610f08575f6116db565b3d91506116f6565b6040519190601f01601f191682016001600160401b03811183821017610f0857604052565b903590601e1981360301821215610f0857018035906001600160401b038211610f0857602001918136038313610f0857565b356001600160e01b031981168103610f085790565b61179f816118f9565b156117a75750565b6117b360c08201611357565b611820575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361181b6117e860208401611343565b6117f5604085018561174f565b61180460608795939501611364565b9060405194859460018060a01b0316973585611398565b0390a2565b602081015f8061182f83611343565b8161183d604087018761174f565b9190826040519384928337810182815203926207a120f161185c611443565b501561186857506117b8565b6118927f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611343565b61189e60608401611364565b60408051943585526001600160801b0390911660208501526001600160a01b0390911692908190810161181b565b906001600160801b031690816118e3575050600190565b5f8080938193611388f16118f5611443565b5090565b611906604082018261174f565b90916001600160a01b038061191d60208401611343565b16149081611c9c575b5080611c93575b15611c8d5781358060f81c90600182101580611c82575b15611c7a5760f31c611fe016600181018310611c7a576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611c50575b80611c26575b80611bfc575b80611bd2575b80611bbb575b80611b91575b80611b67575b80611b3d575b80611b13575b80611ae9575b80611abf575b80611a95575b80611a6b575b15611a62578190035f1901918260016119ea8261172a565b93870101833760218501359460418101359160018103611a115750505090919250a1600190565b60028103611a2257505050a2600190565b600381979593969497145f14611a3e57505090919293a3600190565b600414611a51575b505050505050600190565b6061013594a45f8080808080611a46565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed8414156119d2565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a8414156119cc565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f38414156119c6565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657838414156119c0565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c38414156119ba565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c68414156119b4565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f88414156119ae565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117738414156119a8565b505f516020611cbb5f395f51905f528414156119a2565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561199c565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611996565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611990565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5484141561198a565b505050505f90565b506004821115611944565b50505f90565b5080151561192d565b6001600160801b0391506060611cb29101611364565b16155f61192656fe85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667","sourceMap":"2621:41123:161:-:0;;;;;;;;;-1:-1:-1;9882:69:161;;:::i;:::-;42692:9;:13;;:37;;;-1:-1:-1;42688:1048:161;;;42799:33;2621:41123;;;-1:-1:-1;;;;;42692:9:161;2621:41123;;;42799:33;2621:41123;42688:1048;2621:41123;42854:7;2621:41123;;;;42853:8;:35;;;42688:1048;42849:887;;;8798:67;;:::i;:::-;8593:5;2621:41123;8593:9;;;:38;;;42849:887;2621:41123;;;-1:-1:-1;;;;;42692:9:161;2621:41123;19408:6;;;:::i;:::-;8593:5;2621:41123;19629:154;;;;42704:1;19629:154;;;;;42704:1;19629:154;2621:41123;;;;;;;8593:5;2621:41123;8593:5;2621:41123;19815:70;2621:41123;;;;;;;;;;;;;;;;;;42704:1;2621:41123;;;;42704:1;2621:41123;;;;;;;;;;;;;;;;;;;;43377:88;43522:14;;19629:154;2621:41123;;;19844:10;;19815:70;;;;42704:1;43552:115;2621:41123;42704:1;43552:115;2621:41123;;;;42704:1;2621:41123;;;;;42704:1;2621:41123;;;;;42704:1;2621:41123;;42704:1;2621:41123;8593:38;-1:-1:-1;42854:7:161;2621:41123;-1:-1:-1;;;;;2621:41123:161;8606:10;:25;8593:38;;42849:887;43704:21;;;42704:1;43704:21;2621:41123;42704:1;43704:21;42853:35;2621:41123;42884:4;2621:41123;42865:23;;42853:35;;42692:37;2621:41123;;42709:20;42692:37;;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3228:31;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;9882:69;;:::i;:::-;9363:6;2621:41123;;;;;;;20666:37;;20418:21;-1:-1:-1;;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;20666:37;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;:::i;:::-;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;2621:41123;-1:-1:-1;;;;;14371:14:161;14378:6;14371:14;:::i;:::-;2621:41123;14371:79;;;;;2621:41123;;14371:79;2621:41123;;;;;;;;;14371:79;;14393:10;2621:41123;14371:79;;2621:41123;14413:4;2621:41123;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14371:79;;;;2621:41123;14487:6;-1:-1:-1;;;;;;;;;;;14487:6:161;;2621:41123;14487:6;;:::i;:::-;2621:41123;;;;;14510:39;2621:41123;;14371:79;;14487:6;14371:79;;2621:41123;14371:79;;-1:-1:-1;;;;;;;;;;;14371:79:161;;:::i;:::-;;;;;;;;;2621:41123;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;9503:63;;:::i;:::-;16181:11;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;811:66:53;2621:41123:161;;-1:-1:-1;;;;;2621:41123:161;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;16181:11:161;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;16631:30:161;16627:124;;2621:41123;;;16627:124;2621:41123;-1:-1:-1;;;;;;;;;;;2621:41123:161;;;;;;16682:58;2621:41123;;811:66:53;-1:-1:-1;;;811:66:53;;2621:41123:161;811:66:53;;2621:41123:161;-1:-1:-1;;;2621:41123:161;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;3558:20;2621:41123;;;;;;;;;;;;;;;;;;;;4050:26;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;2621:41123;;;;;;12953:46;2621:41123;12988:10;12953:46;;2621:41123;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;12480:64;2621:41123;;;;;;:::i;:::-;9882:69;;;;;:::i;:::-;8798:67;;:::i;:::-;7804:83;;:::i;:::-;-1:-1:-1;;;;;12419:9:161;2621:41123;12457:6;;;;:::i;:::-;12480:64;2621:41123;;12515:10;;;;2621:41123;;;12480:64;;:::i;:::-;;;;2621:41123;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;;;;;;;2621:41123:161;;;:::i;:::-;9882:69;;:::i;:::-;8798:67;;:::i;:::-;10354:5;;;:::i;:::-;-1:-1:-1;;;;;2621:41123:161;;;;;;13429:39;2621:41123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3668:18;2621:41123;;;;;;;;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;9882:69;;:::i;:::-;8798:67;;:::i;:::-;8593:5;2621:41123;8593:9;;;:38;;;2621:41123;;;;-1:-1:-1;;;;;19370:9:161;2621:41123;19408:6;;;;:::i;:::-;8593:5;2621:41123;19629:154;;;;;;;;;;;2621:41123;;;;;;;;;;;;;8593:5;19815:70;2621:41123;;8593:5;2621:41123;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;19629:154;2621:41123;;;19844:10;;19815:70;;;;2621:41123;;;;;;;-1:-1:-1;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;2621:41123:161;;;;;8593:38;-1:-1:-1;8620:11:161;2621:41123;-1:-1:-1;;;;;2621:41123:161;8606:10;:25;8593:38;;2621:41123;;;;;;;;;;;;;3940:24;2621:41123;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;9503:63;;:::i;:::-;17254:19;2621:41123;;;;17254:19;:::i;:::-;17285:4;-1:-1:-1;;;;;2621:41123:161;;;17254:36;2621:41123;;17442:38;;2621:41123;;17442:38;;:::i;:::-;17438:113;;2621:41123;;;17672:20;;2621:41123;-1:-1:-1;;2621:41123:161;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21507:35;2621:41123;;;;;;;;;21507:35;:::i;:::-;2621:41123;;;21618:3;2621:41123;;;;;;;21601:15;;;;;2621:41123;;;;;;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;-1:-1:-1;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20946:273:169;2621:41123:161;;;;17442:38;2621:41123;;;;;;;21045:15:169;;2621:41123:161;;;;;;;;;;;;;;;20946:273:169;;;;;;2621:41123:161;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;20946:273:169;;;;;;;;;;:::i;:::-;2621:41123:161;20923:306:169;;4093:83:22;;;;2621:41123:161;;;;;;;;;;;17442:38;;2621:41123;;22310:7;2621:41123;;;;;;;;22310:7;:::i;:::-;2621:41123;21586:13;;;22236:162;37118:13;2621:41123;;;;;;;;37118:13;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;;37169:26:161;2621:41123;;;;;;;;37169:26;:::i;:::-;2621:41123;37169:29;2621:41123;;;37169:34;37218:20;;2621:41123;37253:433;;;;;2621:41123;;;37301:16;2621:41123;;;;;;;;;;;;;;;;;;;;;;37301:16;:::i;:::-;2621:41123;;;:::i;:::-;;-1:-1:-1;;;;;37765:14:161;2621:41123;;;37718:20;2621:41123;;;;;;;;37718:20;:::i;:::-;2621:41123;;;;;;;37765:14;:::i;:::-;2621:41123;;37718:71;;;;;37749:7;37718:71;;;:::i;:::-;;37808:8;37804:513;;37253:433;37114:1562;22236:162;;37804:513;37859:52;37874:20;2621:41123;;;;;;;;37874:20;:::i;:::-;37896:14;2621:41123;;;;;;;;37896:14;:::i;:::-;37859:52;;:::i;:::-;37933:16;37929:125;;37804:513;38217:85;2621:41123;38233:14;2621:41123;;;;;;;;38233:14;:::i;:::-;17442:38;2621:41123;-1:-1:-1;;;;;;38275:26:161;2621:41123;;;;;;;;38275:26;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;38217:85;37804:513;;;37929:125;37978:57;37998:20;2621:41123;;;;;;;;37998:20;:::i;:::-;38020:14;2621:41123;;;;;;;;38020:14;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;37978:57;37929:125;;37253:433;2621:41123;;;;37518:153;;2621:41123;37609:16;2621:41123;;;;;;;;;;;;37609:16;:::i;:::-;37627:26;2621:41123;;;;;;;;37627:26;:::i;:::-;2621:41123;;;;;37562:32;;;;;;37518:153;;;;2621:41123;;;;;;;37518:153;;;2621:41123;;;;;;;;;;:::i;:::-;;;;;;;;;;37518:153;2621:41123;;37518:153;;;;;;:::i;:::-;37253:433;;37114:1562;38370:52;38385:20;2621:41123;;;;;;;;38385:20;:::i;38370:52::-;38440:16;38436:117;;37114:1562;38572:93;38578:16;2621:41123;;;;;;;;;;;;38578:16;:::i;:::-;38596:14;2621:41123;;;;;;;;38596:14;:::i;:::-;17442:38;2621:41123;-1:-1:-1;;;;;;38638:26:161;2621:41123;;;;;;;;38638:26;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;38572:93;;;22236:162;;38436:117;38481:57;38501:20;2621:41123;;;;;;;;38501:20;:::i;:::-;38523:14;2621:41123;;;;;;;;38523:14;:::i;:::-;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;38481:57;38436:117;;2621:41123;;;;;;;;;;;;;;;;21601:15;;;;2621:41123;21601:15;2621:41123;;;;;;;1083:131:25;;2621:41123:161;17810:23;2621:41123;;17810:23;2621:41123;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39449:33;;;;;;;:::i;:::-;39492:18;2621:41123;39526:13;2621:41123;39521:628;39556:3;39541:13;;;;;;39689:17;2621:41123;;;;;;;;;;;;;;39896:46;39911:17;2621:41123;;;;;39689:17;;;2621:41123;;39689:17;;;;;:::i;:::-;39708:11;;;;;;:::i;:::-;2621:41123;;21584:50:169;;;;2621:41123:161;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;21584:50:169;;;;;;:::i;:::-;2621:41123:161;21574:61:169;;4093:83:22;;;2621:41123:161;39911:17;;:::i;:::-;39930:11;;;:::i;39896:46::-;39930:11;;;40022;39992:42;40022:11;;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;39992:42;39956:183;2621:41123;39526:13;;;;;;39956:183;40112:11;40078:46;40112:11;;:::i;:::-;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;40078:46;39956:183;;39541:13;;;1083:131:25;2621:41123:161;;;;17914:18;;;;;:::i;:::-;;;;2621:41123;;;;17962:21;21584:50:169;2621:41123:161;;17962:21;;:::i;:::-;8798:67;;;:::i;:::-;40643:13;2621:41123;;-1:-1:-1;;;;;;2621:41123:161;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;-1:-1:-1;;2621:41123:161;20418:21;-1:-1:-1;;;;;2621:41123:161;;20666:37;;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;20666:37;:::i;:::-;40867:8;40863:231;;17910:183;;;;2621:41123;;18194:24;2621:41123;;18194:24;2621:41123;18181:37;;;;;18177:110;;17910:183;2621:41123;;18496:18;18425:19;2621:41123;;;;18425:19;:::i;:::-;18496:18;;:::i;:::-;18528:21;21584:50:169;2621:41123:161;;18528:21;;:::i;:::-;18563:26;;2621:41123;;18563:26;;:::i;:::-;2621:41123;18603:38;17442;2621:41123;;17442:38;18603;:::i;:::-;2621:41123;;;22496:279:169;;;;2621:41123:161;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;;;;;;;;;22496:279:169;;;;;;:::i;:::-;2621:41123:161;22473:312:169;;2621:41123:161;;;;;;18177:110;2621:41123;41454:23;2621:41123;;;;;;41454:23;18177:110;;;;40863:231;2621:41123;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;41028:55;;;40863:231;;;;17910:183;2621:41123;-1:-1:-1;;;;;18023:21:161;2621:41123;;21584:50:169;18023:21:161;;:::i;:::-;2621:41123;;;;17910:183;;;2621:41123;;;;;;;;;17438:113;17513:26;;;2621:41123;;17513:26;;:::i;:::-;;:::i;:::-;17438:113;;2621:41123;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;;;-1:-1:-1;;2621:41123:161;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;:::o;9658:102::-;9727:6;-1:-1:-1;;;;;2621:41123:161;9713:10;:20;2621:41123;;9658:102::o;2621:41123::-;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;-1:-1:-1;;2621:41123:161;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;2621:41123:161;;;;:::o;:::-;;;:::o;10854:215::-;-1:-1:-1;;;;;2621:41123:161;10918:10;10914:149;;10854:215;:::o;10914:149::-;10927:1;10962:6;;;;;:29;;;;:::i;:::-;;2621:41123;;;10854:215::o;2621:41123::-;;;;10927:1;2621:41123;;10927:1;2621:41123;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2621:41123:161;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;10043:108::-;2621:41123;;-1:-1:-1;;;10102:24:161;;;2621:41123;10102:24;2621:41123;10110:6;-1:-1:-1;;;;;2621:41123:161;10102:24;;;;;;;-1:-1:-1;10102:24:161;;;10043:108;10101:25;2621:41123;;10043:108::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;10102:24;-1:-1:-1;2621:41123:161;10102:24;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2621:41123;;;;;;;;;8952:89;2621:41123;9010:6;2621:41123;;;;8952:89::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;2621:41123:161;10487:228;-1:-1:-1;;;;;2621:41123:161;10550:10;10546:163;;10487:228;:::o;10546:163::-;10598:6;;2621:41123;;10591:54;-1:-1:-1;;;;;10591:14:161;10598:6;10591:14;:::i;:::-;2621:41123;;-1:-1:-1;;;10591:54:161;;10619:10;10591:54;;;2621:41123;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;;;;;10559:1;;2621:41123;10591:54;;;;;;;10559:1;10591:54;;;10546:163;2621:41123;;;;10487:228::o;2621:41123::-;;;;10559:1;2621:41123;10591:54;10559:1;2621:41123;10591:54;;;;2621:41123;10591:54;2621:41123;10591:54;;;;;;;:::i;:::-;;;;7993:107;8058:5;2621:41123;8058:9;2621:41123;;7993:107::o;2621:41123::-;;;;-1:-1:-1;2621:41123:161;;-1:-1:-1;2621:41123:161;41658:182;2621:41123;;-1:-1:-1;;;41760:33:161;;2621:41123;41760:33;;2621:41123;;41760:33;;2621:41123;;-1:-1:-1;;;;;2621:41123:161;41760:33;;;;;;;-1:-1:-1;41760:33:161;;;41658:182;-1:-1:-1;;;;;;2621:41123:161;;41658:182::o;41760:33::-;;;;;;;;;;;;;;;;;:::i;:::-;;;2621:41123;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;41760:33;;;;;;-1:-1:-1;41760:33:161;;863:809:22;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;2621:41123:161:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;2621:41123:161;;;;;;;:::o;23021:1125::-;23279:36;;;:::i;:::-;23278:37;23274:866;;23021:1125;:::o;23274:866::-;23585:13;;;;;:::i;:::-;23581:453;;23274:866;24053:76;;24074:20;;;;;:::i;:::-;24096:16;;;;;;:::i;:::-;24114:14;;;;;;;;:::i;:::-;2621:41123;24096:16;2621:41123;;;;;;;;;;;;24053:76;;:::i;:::-;;;;23021:1125::o;23581:453::-;23636:20;;;-1:-1:-1;23636:20:161;;;;:::i;:::-;23676:16;;;;;;;:::i;:::-;2621:41123;;;23676:16;2621:41123;;;;;;;;;;;23636:57;;23667:7;23636:57;;;:::i;:::-;;23716:8;23712:308;;23581:453;;;23712:308;23936:20;23905:68;23936:20;;:::i;:::-;23958:14;;;;;:::i;:::-;23676:16;2621:41123;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;-1:-1:-1;;;;;2621:41123:161;;;;;;;;;23905:68;2621:41123;42082:253;;-1:-1:-1;;;;;2621:41123:161;42179:10;;42175:133;;42317:11;;42324:4;42082:253;:::o;42175:133::-;2621:41123;42223:46;;;;;42245:5;42223:46;;;:::i;:::-;;42283:14;:::o;27225:3845::-;27364:16;;;;;;:::i;:::-;2621:41123;;-1:-1:-1;;;;;2621:41123:161;27397:20;;;;;:::i;:::-;2621:41123;27397:38;:61;;;;27225:3845;27397:83;;;;27225:3845;27395:86;27391:129;;27560:249;;;;;27825:17;27841:1;27825:17;;;:38;;;27225:3845;27823:41;27819:84;;2943:42;;;;27841:1;2621:41123;;28044:37;;28038:83;;27841:1;28240:95;;;28906:31;28916:21;28906:31;;;:90;;;27225:3845;28906:147;;;27225:3845;28906:204;;;27225:3845;28906:265;;;27225:3845;28906:331;;;27225:3845;28906:373;;;27225:3845;28906:425;;;27225:3845;28906:465;;;27225:3845;28906:515;;;27225:3845;28906:562;;;27225:3845;28906:633;;;27225:3845;28906:687;;;27225:3845;28906:738;;;27225:3845;28891:763;28887:806;;2943:42;;;-1:-1:-1;;2943:42:161;;;27841:1;29863:21;2943:42;29863:21;:::i;:::-;29894:117;;;;;;30230:216;;;;;;;;;;27841:1;30460:17;;27841:1;;30493:83;;;;;;;;27841:1;27225:3845;:::o;30456:586::-;30612:1;30596:17;;30612:1;;30629:91;;;;27841:1;27225:3845;:::o;30592:450::-;30756:1;30740:17;;;;;;;;30736:306;30756:1;;;30773:99;;;;;;;27841:1;27225:3845;:::o;30736:306::-;30908:1;30892:17;30888:154;;30736:306;;;;;;;27841:1;27225:3845;:::o;30888:154::-;30230:216;;;30925:107;;30888:154;;;;;;;;28887:806;29670:12;;;;;2621:41123;29670:12;:::o;28906:738::-;29609:35;29619:25;29609:35;;;28906:738;;:687;29555:38;29565:28;29555:38;;;28906:687;;:633;29484:55;29494:45;29484:55;;;28906:633;;:562;29437:31;29447:21;29437:31;;;28906:562;;:515;29387:34;29397:24;29387:34;;;28906:515;;:465;29347:24;29357:14;29347:24;;;28906:465;;:425;29295:36;29305:26;29295:36;;;28906:425;;:373;29253:26;29263:16;29253:26;;;28906:373;;:331;29187:50;-1:-1:-1;;;;;;;;;;;29187:50:161;;;28906:331;;:265;29126:45;29136:35;29126:45;;;28906:265;;:204;29069:41;29079:31;29069:41;;;28906:204;;:147;29012:41;29022:31;29012:41;;;28906:147;;:90;28953:43;28963:33;28953:43;;;28906:90;;28038:83;28098:12;;;;2621:41123;28098:12;:::o;27825:38::-;27846:17;27862:1;27846:17;;;27825:38;;27391:129;27497:12;;2621:41123;27497:12;:::o;27397:83::-;27462:18;;;;27397:83;;:61;-1:-1:-1;;;;;27439:14:161;;;;;;;:::i;:::-;2621:41123;27439:19;27397:61;;","linkReferences":{},"immutableReferences":{"77326":[{"start":569,"length":32},{"start":797,"length":32},{"start":5097,"length":32},{"start":5258,"length":32},{"start":5421,"length":32},{"start":5603,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":"c6049692","exited()":"5ce6c327","inheritor()":"36a52a18","initialize(address,address,bool,uint128)":"bfa28576","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"084f443a","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"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\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"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\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"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\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"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\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"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\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"},{\"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\":\"executableBalanceTopUpWithPermit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.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 Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"transitionHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Mirror smart contract is responsible for storing the minimal state of programs on our platform and transitioning from one state to another by calling `performStateTransition(...)`. It's built on actor-model architecture, and in Ethereum, we implement this through \\\"request-response\\\" model. This means we have two types of events: - \\\"Requested\\\" events - when user calls one of the methods marked as \\\"Primary Gear logic\\\" we emit such an event, and all our nodes process it off-chain - \\\"Responded\\\" events - when we receive response from our nodes and transmit it back to Ethereum. All logic called within `performStateTransition(...)` and leading to methods marked as \\\"Private calls related to performStateTransition\\\" are such events. It's important not to confuse these two, as this is how we implement the actor model in Ethereum. Mirror economic model has two balances: - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`. This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`. - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain. It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform. You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users can use it for free. This is called the \\\"reverse-gas model\\\". Developer can also require the presence of `value` in the owned balance when calling methods in a WASM smart contract to protect their program from spam.\",\"errors\":{\"CallerNotRouter()\":[{\"details\":\"Thrown when the caller is not the `Router`.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the `Router` contract is paused and pause-protected Mirror call is attempted.\"}],\"EtherTransferToRouterFailed()\":[{\"details\":\"Thrown when the transfer of Ether to the `Router` fails.\"}],\"InitMessageNotCreated()\":[{\"details\":\"Thrown when the first (init) message is not created by the initializer.\"}],\"InitMessageNotCreatedAndCallerNotInitializer()\":[{\"details\":\"Thrown when the first (init) message is not created and the caller is not the initializer.\"}],\"ProgramExited()\":[{\"details\":\"Thrown when the program is exited and the call is attempted.\"}],\"ProgramNotExited()\":[{\"details\":\"Thrown when the program is not exited and the call is attempted.\"}],\"TransferLockedValueToInheritorExternalFailed()\":[{\"details\":\"Thrown when the transfer of locked value to the inheritor fails (in external call).\"}],\"WVaraTransferFailed()\":[{\"details\":\"Thrown when the transfer of Vara to the `Router` fails.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens.\",\"params\":{\"value\":\"The amount of tokens the user wants to top up. 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.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about new message sent from program.\"}},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts.\",\"params\":{\"destination\":\"Message destination address.\",\"id\":\"Message ID.\",\"value\":\"Message value. NOTE: It's event for USERS: it informs about failed message call from program.\"}},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued.\",\"params\":{\"callReply\":\"Indicates whether the message is sent with callReply flag. NOTE: It's event for NODES: it requires to insert message in the program's queue.\",\"id\":\"Message ID.\",\"payload\":\"Message payload.\",\"source\":\"Message source address.\",\"value\":\"Message value.\"}},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether.\",\"params\":{\"value\":\"The amount of Ether the user wants to top up. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"}},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message.\",\"params\":{\"payload\":\"Reply message payload.\",\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about new reply sent from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts.\",\"params\":{\"replyCode\":\"The code of the reply, which can be used to identify the type of reply. NOTE: It's event for USERS: it informs about failed reply call from program.\",\"replyTo\":\"The ID of the message being replied to.\",\"value\":\"Reply message value.\"}},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued.\",\"params\":{\"payload\":\"The payload of the reply.\",\"repliedTo\":\"The ID of the message being replied to.\",\"source\":\"The address of the reply sender.\",\"value\":\"The value of the reply. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"}},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call\",\"params\":{\"destination\":\"The address of the destination.\",\"value\":\"The amount of value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"}},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed.\",\"params\":{\"stateHash\":\"The new state hash of the program. NOTE: It's event for USERS: it informs about state changes.\"}},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit.\",\"params\":{\"inheritor\":\"The address of the inheritor.\",\"value\":\"The amount of locked value that failed to transfer. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"}},\"ValueClaimFailed(bytes32,uint128)\":{\"details\":\"Emitted when a user fails in claiming value request and doesn't receive balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value that failed to claim. NOTE: It's event for USERS: it informs about failed value claim.\"}},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"value\":\"The amount of value claimed. 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.\",\"params\":{\"claimedId\":\"The ID of the message or reply being claimed.\",\"source\":\"The address of the claim sender. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}}},\"kind\":\"dev\",\"methods\":{\"claimValue(bytes32)\":{\"details\":\"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.\",\"params\":{\"_claimedId\":\"Message ID of the value to be claimed.\"}},\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable `Router` address.\",\"params\":{\"_router\":\"The address of the `Router` contract.\"}},\"executableBalanceTopUp(uint128)\":{\"details\":\"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\",\"params\":{\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\",\"_value\":\"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\"}},\"initialize(address,address,bool,uint128)\":{\"details\":\"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.\",\"params\":{\"_abiInterface\":\"The address of the ABI interface. This address will be displayed as \\\"proxy implementation\\\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.\",\"_initialExecutableBalance\":\"The initial executable balance to be transferred to the program.\",\"_initializer\":\"The address of the initializer. Only this address will be able to send the first (init) message.\",\"_isSmall\":\"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\"}},\"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))\":{\"details\":\"Performs state transition for the `Mirror` contract.\",\"params\":{\"_transition\":\"The state transition data.\"},\"returns\":{\"transitionHash\":\"The hash of the performed state transition.\"}},\"sendMessage(bytes,bool)\":{\"details\":\"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.\",\"params\":{\"_callReply\":\"Whether to set `call` flag in the reply message.\",\"_payload\":\"The payload of the message.\"},\"returns\":{\"messageId\":\"Message ID of the sent message.\"}},\"sendReply(bytes32,bytes)\":{\"details\":\"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.\",\"params\":{\"_payload\":\"The payload of the reply message.\",\"_repliedTo\":\"Message ID to which the reply is sent.\"}},\"transferLockedValueToInheritor()\":{\"details\":\"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted.\"}},\"stateVariables\":{\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events and re-remit then as Solidity events: - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit. Inheritor specifies the address to which all available program value should be transferred.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"Flag that indicates what type this `Mirror` smart contract is: - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation (which is usually more expensive in terms of gas to create). This is generally the more popular way and is the one you will most likely use if you are writing programs using the Sails framework. This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`. User writes WASM smart contract on Sails framework called \\\"\\u0421ounter\\\": - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)` and waits for the code to be validated. User also generates \\\"Solidity ABI Interface\\\" to allow incrementing counter or calling other methods within WASM smart contract. Next, we assume user uploads `CounterAbi` smart contract to Ethereum: ```solidity interface ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId); function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId); // ... other methods } contract CounterAbi is ICounter { function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {} function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {} } ``` User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`, where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \\\"proxy implementation\\\", and Etherscan will think that `Mirror` has `CounterAbi` methods. User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract: `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror` to create new message and pass the Solidity call to the WASM smart contract on the Sails framework. WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`. - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation (which is usually less expensive in terms of gas to create). This case is suitable if the user develops WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the `Router` contract, which is the sole authority to modify the state of this contract and transfer funds from it. forge-lint: disable-next-item(screaming-snake-case-immutable)\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf\",\"dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009\",\"dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x0300beb47e6c99090a8775b919bd4c62f9ab055f43d9d8a113e040dbdc66af73\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://0a21a95ffc1959436f60a45d221568ca4d5ab53eaef3032b184986ba4aaf7f7b\",\"dweb:/ipfs/QmWCpmRUHu99EiWk2y3ZZEjbec3Bf56dfNzmkeoARhZQwG\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded\",\"dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"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":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","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},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","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":"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":"ReplyCallFailed","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":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimFailed","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":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"},{"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":"executableBalanceTopUpWithPermit"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"transitionHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"devdoc":{"kind":"dev","methods":{"claimValue(bytes32)":{"details":"Claim value from message in mailbox. As result of execution, the `ValueClaimingRequested` event will be emitted.","params":{"_claimedId":"Message ID of the value to be claimed."}},"constructor":{"details":"Minimal constructor that only sets the immutable `Router` address.","params":{"_router":"The address of the `Router` contract."}},"executableBalanceTopUp(uint128)":{"details":"Tops up the executable balance of the program. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"executableBalanceTopUpWithPermit(uint128,uint256,uint8,bytes32,bytes32)":{"details":"Tops up the executable balance of the program. Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router` using permit signature, which can save one transaction for user. As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.","params":{"_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter.","_value":"The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."}},"initialize(address,address,bool,uint128)":{"details":"Initializes the contract with the given parameters. Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default, so we do the initialization separately after creating `Mirror` in this method.","params":{"_abiInterface":"The address of the ABI interface. This address will be displayed as \"proxy implementation\" and is necessary to show the available methods of `Mirror` smart contract on Etherscan. In case it is a Sails framework smart contract, the user can set his own ABI.","_initialExecutableBalance":"The initial executable balance to be transferred to the program.","_initializer":"The address of the initializer. Only this address will be able to send the first (init) message.","_isSmall":"The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details."}},"performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":{"details":"Performs state transition for the `Mirror` contract.","params":{"_transition":"The state transition data."},"returns":{"transitionHash":"The hash of the performed state transition."}},"sendMessage(bytes,bool)":{"details":"Sends message to the program. As result of execution, the `MessageQueueingRequested` event will be emitted.","params":{"_callReply":"Whether to set `call` flag in the reply message.","_payload":"The payload of the message."},"returns":{"messageId":"Message ID of the sent message."}},"sendReply(bytes32,bytes)":{"details":"Sends reply message to the program. Note that this function does not return `bytes32 messageId` of the sent message, if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)` or use SDK in `ethexe/sdk/src/mirror.rs`. As result of execution, the `ReplyQueueingRequested` event will be emitted.","params":{"_payload":"The payload of the reply message.","_repliedTo":"Message ID to which the reply is sent."}},"transferLockedValueToInheritor()":{"details":"Transfers locked value to the inheritor. Note that this function can be called only after program exited. As result of execution, the `LockedValueTransferRequested` event will be emitted."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0xbb45458e83d140696120ac50f5a363df99d4d98d5e3de24971835916b831e4e0","urls":["bzz-raw://1afffa7aacdec21cbb23839467aec722261dce3f6bd945475dc12742629076cf","dweb:/ipfs/QmQSvuiLoPDph41V8EPWLXSFpX9u4yDPi2wScFNbvMifHR"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc","urls":["bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009","dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Mirror.sol":{"keccak256":"0x0300beb47e6c99090a8775b919bd4c62f9ab055f43d9d8a113e040dbdc66af73","urls":["bzz-raw://0a21a95ffc1959436f60a45d221568ca4d5ab53eaef3032b184986ba4aaf7f7b","dweb:/ipfs/QmWCpmRUHu99EiWk2y3ZZEjbec3Bf56dfNzmkeoARhZQwG"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45","urls":["bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded","dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[{"astId":77329,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":77332,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77335,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":77338,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":77341,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":77344,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":78742,"exportedSymbols":{"ERC1967Utils":[45701],"Gear":[84181],"Hashes":[41483],"ICallbacks":[73742],"IMirror":[74395],"IRouter":[75008],"IWrappedVara":[75024],"Memory":[41257],"Mirror":[78741],"StorageSlot":[49089]},"nodeType":"SourceUnit","src":"74:43671:161","nodes":[{"id":77298,"nodeType":"PragmaDirective","src":"74:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77300,"nodeType":"ImportDirective","src":"100:84:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":45702,"symbolAliases":[{"foreign":{"id":77299,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"108:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77302,"nodeType":"ImportDirective","src":"185:74:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":77301,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"193:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77304,"nodeType":"ImportDirective","src":"260:60:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":77303,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"268:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77306,"nodeType":"ImportDirective","src":"321:73:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":77305,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"329:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77308,"nodeType":"ImportDirective","src":"395:46:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":73743,"symbolAliases":[{"foreign":{"id":77307,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"403:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77310,"nodeType":"ImportDirective","src":"442:40:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":77309,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"450:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77312,"nodeType":"ImportDirective","src":"483:40:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":75009,"symbolAliases":[{"foreign":{"id":77311,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75008,"src":"491:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77314,"nodeType":"ImportDirective","src":"524:50:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":75025,"symbolAliases":[{"foreign":{"id":77313,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"532:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77316,"nodeType":"ImportDirective","src":"575:44:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78742,"sourceUnit":84182,"symbolAliases":[{"foreign":{"id":77315,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"583:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78741,"nodeType":"ContractDefinition","src":"2621:41123:161","nodes":[{"id":77323,"nodeType":"VariableDeclaration","src":"2900:85:161","nodes":[],"constant":true,"documentation":{"id":77320,"nodeType":"StructuredDocumentation","src":"2654:241:161","text":" @dev Special address to which Sails contract sends messages so that Mirror can decode events\n and re-remit then as Solidity events:\n - https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"2926:14:161","scope":78741,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77321,"name":"address","nodeType":"ElementaryTypeName","src":"2900:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":77322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2943:42:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":77326,"nodeType":"VariableDeclaration","src":"3228:31:161","nodes":[],"baseFunctions":[74295],"constant":false,"documentation":{"id":77324,"nodeType":"StructuredDocumentation","src":"2992:231:161","text":" @dev Address of the `Router` contract, which is the sole authority\n to modify the state of this contract and transfer funds from it.\n forge-lint: disable-next-item(screaming-snake-case-immutable)"},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"3253:6:161","scope":78741,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77325,"name":"address","nodeType":"ElementaryTypeName","src":"3228:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77329,"nodeType":"VariableDeclaration","src":"3324:24:161","nodes":[],"baseFunctions":[74301],"constant":false,"documentation":{"id":77327,"nodeType":"StructuredDocumentation","src":"3266:53:161","text":" @dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"3339:9:161","scope":78741,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3324:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77332,"nodeType":"VariableDeclaration","src":"3558:20:161","nodes":[],"baseFunctions":[74307],"constant":false,"documentation":{"id":77330,"nodeType":"StructuredDocumentation","src":"3355:198:161","text":" @dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"3573:5:161","scope":78741,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77331,"name":"uint256","nodeType":"ElementaryTypeName","src":"3558:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77335,"nodeType":"VariableDeclaration","src":"3668:18:161","nodes":[],"baseFunctions":[74313],"constant":false,"documentation":{"id":77333,"nodeType":"StructuredDocumentation","src":"3585:78:161","text":" @dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"3680:6:161","scope":78741,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77334,"name":"bool","nodeType":"ElementaryTypeName","src":"3668:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":77338,"nodeType":"VariableDeclaration","src":"3940:24:161","nodes":[],"baseFunctions":[74319],"constant":false,"documentation":{"id":77336,"nodeType":"StructuredDocumentation","src":"3741:194:161","text":" @dev The address of the inheritor, which is set by the program on exit.\n Inheritor specifies the address to which all available program value should be transferred."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"3955:9:161","scope":78741,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77337,"name":"address","nodeType":"ElementaryTypeName","src":"3940:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77341,"nodeType":"VariableDeclaration","src":"4050:26:161","nodes":[],"baseFunctions":[74325],"constant":false,"documentation":{"id":77339,"nodeType":"StructuredDocumentation","src":"3971:74:161","text":" @dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"4065:11:161","scope":78741,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77340,"name":"address","nodeType":"ElementaryTypeName","src":"4050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77344,"nodeType":"VariableDeclaration","src":"7411:12:161","nodes":[],"constant":false,"documentation":{"id":77342,"nodeType":"StructuredDocumentation","src":"4083:3323:161","text":" @dev Flag that indicates what type this `Mirror` smart contract is:\n - If `false`, it means that `Mirror` (clone) uses the `MirrorProxy` implementation\n (which is usually more expensive in terms of gas to create). This is generally the\n more popular way and is the one you will most likely use if you are writing programs using the Sails framework.\n This also means that all unknown selectors (calls) in `Mirror` will be processed in `Mirror.fallback()` and\n new message will be created for them implicitly via `_sendMessage(msg.data, callReply)`.\n User writes WASM smart contract on Sails framework called \"Сounter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n User uploads WASM to Ethereum network via the call `IRouter(router).requestCodeValidation(bytes32 _codeId)`\n and waits for the code to be validated.\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User calls `IRouter(router).createProgramWithAbiInterface(bytes32 _codeId, bytes32 _salt, address _overrideInitializer, address _abiInterface)`,\n where `_abiInterface = address(CounterAbi)`. See how `Mirror.initialize(...)` works; it will set `CounterAbi` as \"proxy implementation\",\n and Etherscan will think that `Mirror` has `CounterAbi` methods.\n User can use any Ethereum-compatible client (Alloy, Viem, Ethers) to call method on the smart contract:\n `ICounter(mirror).counterAdd(bool _callReply=false, uint32 value=42)`, the client will automatically encode the call\n and send it, but in this case the `!isSmall` flag in `Mirror.fallback()` will be triggered, which will force `Mirror`\n to create new message and pass the Solidity call to the WASM smart contract on the Sails framework.\n WASM smart contract will send reply and we will process it in `Mirror.performStateTransition(...)`.\n - If `true`, it means that `Mirror` (clone) uses the `MirrorProxySmall` implementation\n (which is usually less expensive in terms of gas to create). This case is suitable if the user develops\n WASM smart contracts using lower-level libraries like `gstd` / `gcore`. This also means that all unknown selectors\n (calls) in `Mirror` will NOT be processed in `Mirror.fallback()`."},"mutability":"mutable","name":"isSmall","nameLocation":"7416:7:161","scope":78741,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77343,"name":"bool","nodeType":"ElementaryTypeName","src":"7411:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":77355,"nodeType":"FunctionDefinition","src":"7585:62:161","nodes":[],"body":{"id":77354,"nodeType":"Block","src":"7614:33:161","nodes":[],"statements":[{"expression":{"id":77352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77350,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"7624:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77351,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77347,"src":"7633:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7624:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77353,"nodeType":"ExpressionStatement","src":"7624:16:161"}]},"documentation":{"id":77345,"nodeType":"StructuredDocumentation","src":"7430:150:161","text":" @dev Minimal constructor that only sets the immutable `Router` address.\n @param _router The address of the `Router` contract."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77347,"mutability":"mutable","name":"_router","nameLocation":"7605:7:161","nodeType":"VariableDeclaration","scope":77355,"src":"7597:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77346,"name":"address","nodeType":"ElementaryTypeName","src":"7597:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7596:17:161"},"returnParameters":{"id":77349,"nodeType":"ParameterList","parameters":[],"src":"7614:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77363,"nodeType":"ModifierDefinition","src":"7804:83:161","nodes":[],"body":{"id":77362,"nodeType":"Block","src":"7836:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77358,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77376,"src":"7846:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7846:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77360,"nodeType":"ExpressionStatement","src":"7846:23:161"},{"id":77361,"nodeType":"PlaceholderStatement","src":"7879:1:161"}]},"documentation":{"id":77356,"nodeType":"StructuredDocumentation","src":"7676:123:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"7813:20:161","parameters":{"id":77357,"nodeType":"ParameterList","parameters":[],"src":"7833:2:161"},"virtual":false,"visibility":"internal"},{"id":77376,"nodeType":"FunctionDefinition","src":"7993:107:161","nodes":[],"body":{"id":77375,"nodeType":"Block","src":"8040:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77368,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77332,"src":"8058:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8066:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8058:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77371,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74253,"src":"8069:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8069:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77367,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8050:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8050:43:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77374,"nodeType":"ExpressionStatement","src":"8050:43:161"}]},"documentation":{"id":77364,"nodeType":"StructuredDocumentation","src":"7893:95:161","text":" @dev Internal function to check if the init message has been created before."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"8002:21:161","parameters":{"id":77365,"nodeType":"ParameterList","parameters":[],"src":"8023:2:161"},"returnParameters":{"id":77366,"nodeType":"ParameterList","parameters":[],"src":"8040:0:161"},"scope":78741,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77384,"nodeType":"ModifierDefinition","src":"8267:109:161","nodes":[],"body":{"id":77383,"nodeType":"Block","src":"8312:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77379,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77402,"src":"8322:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8322:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77381,"nodeType":"ExpressionStatement","src":"8322:36:161"},{"id":77382,"nodeType":"PlaceholderStatement","src":"8368:1:161"}]},"documentation":{"id":77377,"nodeType":"StructuredDocumentation","src":"8106:156:161","text":" @dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"8276:33:161","parameters":{"id":77378,"nodeType":"ParameterList","parameters":[],"src":"8309:2:161"},"virtual":false,"visibility":"internal"},{"id":77402,"nodeType":"FunctionDefinition","src":"8515:172:161","nodes":[],"body":{"id":77401,"nodeType":"Block","src":"8575:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77389,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77332,"src":"8593:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8601:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8593:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77392,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8606:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8610:6:161","memberName":"sender","nodeType":"MemberAccess","src":"8606:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77394,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77341,"src":"8620:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8606:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8593:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77397,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"8633:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8633:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77388,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"8585:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8585:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77400,"nodeType":"ExpressionStatement","src":"8585:95:161"}]},"documentation":{"id":77385,"nodeType":"StructuredDocumentation","src":"8382:128:161","text":" @dev Internal function to check if the init message has been created before or the caller is the initializer."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"8524:34:161","parameters":{"id":77386,"nodeType":"ParameterList","parameters":[],"src":"8558:2:161"},"returnParameters":{"id":77387,"nodeType":"ParameterList","parameters":[],"src":"8575:0:161"},"scope":78741,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77410,"nodeType":"ModifierDefinition","src":"8798:67:161","nodes":[],"body":{"id":77409,"nodeType":"Block","src":"8822:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77405,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77422,"src":"8832:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8832:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77407,"nodeType":"ExpressionStatement","src":"8832:15:161"},{"id":77408,"nodeType":"PlaceholderStatement","src":"8857:1:161"}]},"documentation":{"id":77403,"nodeType":"StructuredDocumentation","src":"8693:100:161","text":" @dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"8807:12:161","parameters":{"id":77404,"nodeType":"ParameterList","parameters":[],"src":"8819:2:161"},"virtual":false,"visibility":"internal"},{"id":77422,"nodeType":"FunctionDefinition","src":"8952:89:161","nodes":[],"body":{"id":77421,"nodeType":"Block","src":"8991:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9009:7:161","subExpression":{"id":77415,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77335,"src":"9010:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77417,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74259,"src":"9018:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9018:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77414,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9001:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9001:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77420,"nodeType":"ExpressionStatement","src":"9001:33:161"}]},"documentation":{"id":77411,"nodeType":"StructuredDocumentation","src":"8871:76:161","text":" @dev Internal function to check if the program is active."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"8961:13:161","parameters":{"id":77412,"nodeType":"ParameterList","parameters":[],"src":"8974:2:161"},"returnParameters":{"id":77413,"nodeType":"ParameterList","parameters":[],"src":"8991:0:161"},"scope":78741,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77430,"nodeType":"ModifierDefinition","src":"9152:67:161","nodes":[],"body":{"id":77429,"nodeType":"Block","src":"9176:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77425,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77441,"src":"9186:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77427,"nodeType":"ExpressionStatement","src":"9186:15:161"},{"id":77428,"nodeType":"PlaceholderStatement","src":"9211:1:161"}]},"documentation":{"id":77423,"nodeType":"StructuredDocumentation","src":"9047:100:161","text":" @dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"9161:12:161","parameters":{"id":77424,"nodeType":"ParameterList","parameters":[],"src":"9173:2:161"},"virtual":false,"visibility":"internal"},{"id":77441,"nodeType":"FunctionDefinition","src":"9306:91:161","nodes":[],"body":{"id":77440,"nodeType":"Block","src":"9345:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77435,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77335,"src":"9363:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77436,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74262,"src":"9371:16:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9371:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9355:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9355:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77439,"nodeType":"ExpressionStatement","src":"9355:35:161"}]},"documentation":{"id":77431,"nodeType":"StructuredDocumentation","src":"9225:76:161","text":" @dev Internal function to check if the program is exited."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"9315:13:161","parameters":{"id":77432,"nodeType":"ParameterList","parameters":[],"src":"9328:2:161"},"returnParameters":{"id":77433,"nodeType":"ParameterList","parameters":[],"src":"9345:0:161"},"scope":78741,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77449,"nodeType":"ModifierDefinition","src":"9503:63:161","nodes":[],"body":{"id":77448,"nodeType":"Block","src":"9525:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77444,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77463,"src":"9535:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77446,"nodeType":"ExpressionStatement","src":"9535:13:161"},{"id":77447,"nodeType":"PlaceholderStatement","src":"9558:1:161"}]},"documentation":{"id":77442,"nodeType":"StructuredDocumentation","src":"9403:95:161","text":" @dev Functions marked with this modifier can only be called by the `Router`."},"name":"onlyRouter","nameLocation":"9512:10:161","parameters":{"id":77443,"nodeType":"ParameterList","parameters":[],"src":"9522:2:161"},"virtual":false,"visibility":"internal"},{"id":77463,"nodeType":"FunctionDefinition","src":"9658:102:161","nodes":[],"body":{"id":77462,"nodeType":"Block","src":"9695:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77454,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9713:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9717:6:161","memberName":"sender","nodeType":"MemberAccess","src":"9713:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77456,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"9727:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9713:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77458,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74265,"src":"9735:15:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9735:17:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9705:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9705:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77461,"nodeType":"ExpressionStatement","src":"9705:48:161"}]},"documentation":{"id":77450,"nodeType":"StructuredDocumentation","src":"9572:81:161","text":" @dev Internal function to check if the caller is the `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"9667:11:161","parameters":{"id":77451,"nodeType":"ParameterList","parameters":[],"src":"9678:2:161"},"returnParameters":{"id":77452,"nodeType":"ParameterList","parameters":[],"src":"9695:0:161"},"scope":78741,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77471,"nodeType":"ModifierDefinition","src":"9882:69:161","nodes":[],"body":{"id":77470,"nodeType":"Block","src":"9907:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77466,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77487,"src":"9917:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9917:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77468,"nodeType":"ExpressionStatement","src":"9917:16:161"},{"id":77469,"nodeType":"PlaceholderStatement","src":"9943:1:161"}]},"documentation":{"id":77464,"nodeType":"StructuredDocumentation","src":"9766:111:161","text":" @dev Functions marked with this modifier can only be called when the `Router` is not paused."},"name":"whenNotPaused","nameLocation":"9891:13:161","parameters":{"id":77465,"nodeType":"ParameterList","parameters":[],"src":"9904:2:161"},"virtual":false,"visibility":"internal"},{"id":77487,"nodeType":"FunctionDefinition","src":"10043:108:161","nodes":[],"body":{"id":77486,"nodeType":"Block","src":"10083:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10101:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77477,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"10110:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77476,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75008,"src":"10102:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$75008_$","typeString":"type(contract IRouter)"}},"id":77478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75008","typeString":"contract IRouter"}},"id":77479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10118:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":74761,"src":"10102:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":77480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10102:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77482,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74268,"src":"10128:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10128:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77475,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10093:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10093:51:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77485,"nodeType":"ExpressionStatement","src":"10093:51:161"}]},"documentation":{"id":77472,"nodeType":"StructuredDocumentation","src":"9957:81:161","text":" @dev Internal function to check if the `Router` is not paused."},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"10052:14:161","parameters":{"id":77473,"nodeType":"ParameterList","parameters":[],"src":"10066:2:161"},"returnParameters":{"id":77474,"nodeType":"ParameterList","parameters":[],"src":"10083:0:161"},"scope":78741,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":77498,"nodeType":"ModifierDefinition","src":"10289:89:161","nodes":[],"body":{"id":77497,"nodeType":"Block","src":"10328:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77493,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77490,"src":"10354:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77492,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77528,"src":"10338:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10338:22:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77495,"nodeType":"ExpressionStatement","src":"10338:22:161"},{"id":77496,"nodeType":"PlaceholderStatement","src":"10370:1:161"}]},"documentation":{"id":77488,"nodeType":"StructuredDocumentation","src":"10157:127:161","text":" @dev Non-zero Vara value must be transferred from source to `Router` in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"10298:14:161","parameters":{"id":77491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77490,"mutability":"mutable","name":"value","nameLocation":"10321:5:161","nodeType":"VariableDeclaration","scope":77498,"src":"10313:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77489,"name":"uint128","nodeType":"ElementaryTypeName","src":"10313:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10312:15:161"},"virtual":false,"visibility":"internal"},{"id":77528,"nodeType":"FunctionDefinition","src":"10487:228:161","nodes":[],"body":{"id":77527,"nodeType":"Block","src":"10536:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77504,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77501,"src":"10550:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10559:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10550:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77526,"nodeType":"IfStatement","src":"10546:163:161","trueBody":{"id":77525,"nodeType":"Block","src":"10562:147:161","statements":[{"assignments":[77508],"declarations":[{"constant":false,"id":77508,"mutability":"mutable","name":"success","nameLocation":"10581:7:161","nodeType":"VariableDeclaration","scope":77525,"src":"10576:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77507,"name":"bool","nodeType":"ElementaryTypeName","src":"10576:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77518,"initialValue":{"arguments":[{"expression":{"id":77513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10619:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10623:6:161","memberName":"sender","nodeType":"MemberAccess","src":"10619:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77515,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"10631:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77516,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77501,"src":"10639:5:161","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":[{"id":77510,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"10598:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77509,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78649,"src":"10591:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75024_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":77512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10606:12:161","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"10591:27:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":77517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10591:54:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10576:69:161"},{"expression":{"arguments":[{"id":77520,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"src":"10667:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77521,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74271,"src":"10676:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10676:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77519,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"10659:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10659:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77524,"nodeType":"ExpressionStatement","src":"10659:39:161"}]}}]},"documentation":{"id":77499,"nodeType":"StructuredDocumentation","src":"10384:98:161","text":" @dev Internal function to transfer non-zero Vara value from source to `Router`."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"10496:15:161","parameters":{"id":77502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77501,"mutability":"mutable","name":"value","nameLocation":"10520:5:161","nodeType":"VariableDeclaration","scope":77528,"src":"10512:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77500,"name":"uint128","nodeType":"ElementaryTypeName","src":"10512:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10511:15:161"},"returnParameters":{"id":77503,"nodeType":"ParameterList","parameters":[],"src":"10536:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77555,"nodeType":"FunctionDefinition","src":"10854:215:161","nodes":[],"body":{"id":77554,"nodeType":"Block","src":"10904:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77534,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"10918:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10927:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10918:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77553,"nodeType":"IfStatement","src":"10914:149:161","trueBody":{"id":77552,"nodeType":"Block","src":"10930:133:161","statements":[{"assignments":[77538,null],"declarations":[{"constant":false,"id":77538,"mutability":"mutable","name":"success","nameLocation":"10950:7:161","nodeType":"VariableDeclaration","scope":77552,"src":"10945:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77537,"name":"bool","nodeType":"ElementaryTypeName","src":"10945:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77545,"initialValue":{"arguments":[{"hexValue":"","id":77543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10988:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":77539,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"10962:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10969:4:161","memberName":"call","nodeType":"MemberAccess","src":"10962:11:161","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":77542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":77541,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"10981:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"10962:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10962:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"10944:47:161"},{"expression":{"arguments":[{"id":77547,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77538,"src":"11013:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77548,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74274,"src":"11022:27:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11022:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77546,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11005:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11005:47:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77551,"nodeType":"ExpressionStatement","src":"11005:47:161"}]}}]},"documentation":{"id":77529,"nodeType":"StructuredDocumentation","src":"10721:128:161","text":" @dev Non-zero Ether value must be transferred from source to `Router` in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"10863:16:161","parameters":{"id":77532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77531,"mutability":"mutable","name":"value","nameLocation":"10888:5:161","nodeType":"VariableDeclaration","scope":77555,"src":"10880:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77530,"name":"uint128","nodeType":"ElementaryTypeName","src":"10880:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"10879:15:161"},"returnParameters":{"id":77533,"nodeType":"ParameterList","parameters":[],"src":"10904:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77573,"nodeType":"FunctionDefinition","src":"11454:216:161","nodes":[],"body":{"id":77572,"nodeType":"Block","src":"11612:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":77568,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77558,"src":"11642:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77569,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77560,"src":"11652:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77567,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77940,"src":"11629:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":77570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11629:34:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77566,"id":77571,"nodeType":"Return","src":"11622:41:161"}]},"baseFunctions":[74335],"documentation":{"id":77556,"nodeType":"StructuredDocumentation","src":"11124:325:161","text":" @dev Sends message to the program.\n As result of execution, the `MessageQueueingRequested` event will be emitted.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":77563,"kind":"modifierInvocation","modifierName":{"id":77562,"name":"whenNotPaused","nameLocations":["11558:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77471,"src":"11558:13:161"},"nodeType":"ModifierInvocation","src":"11558:13:161"}],"name":"sendMessage","nameLocation":"11463:11:161","parameters":{"id":77561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77558,"mutability":"mutable","name":"_payload","nameLocation":"11490:8:161","nodeType":"VariableDeclaration","scope":77573,"src":"11475:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77557,"name":"bytes","nodeType":"ElementaryTypeName","src":"11475:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77560,"mutability":"mutable","name":"_callReply","nameLocation":"11505:10:161","nodeType":"VariableDeclaration","scope":77573,"src":"11500:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77559,"name":"bool","nodeType":"ElementaryTypeName","src":"11500:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11474:42:161"},"returnParameters":{"id":77566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77565,"mutability":"mutable","name":"messageId","nameLocation":"11597:9:161","nodeType":"VariableDeclaration","scope":77573,"src":"11589:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11589:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11588:19:161"},"scope":78741,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77608,"nodeType":"FunctionDefinition","src":"12211:340:161","nodes":[],"body":{"id":77607,"nodeType":"Block","src":"12384:167:161","nodes":[],"statements":[{"assignments":[77588],"declarations":[{"constant":false,"id":77588,"mutability":"mutable","name":"_value","nameLocation":"12402:6:161","nodeType":"VariableDeclaration","scope":77607,"src":"12394:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77587,"name":"uint128","nodeType":"ElementaryTypeName","src":"12394:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77594,"initialValue":{"arguments":[{"expression":{"id":77591,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12419:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12423:5:161","memberName":"value","nodeType":"MemberAccess","src":"12419:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12411:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77589,"name":"uint128","nodeType":"ElementaryTypeName","src":"12411:7:161","typeDescriptions":{}}},"id":77593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12411:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"12394:35:161"},{"expression":{"arguments":[{"id":77596,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77588,"src":"12457:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77595,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77555,"src":"12440:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12440:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77598,"nodeType":"ExpressionStatement","src":"12440:24:161"},{"eventCall":{"arguments":[{"id":77600,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77576,"src":"12503:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77601,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12515:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12519:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12515:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77603,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77578,"src":"12527:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77604,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77588,"src":"12537:6:161","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":77599,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"12480:22:161","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":77605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12480:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77606,"nodeType":"EmitStatement","src":"12475:69:161"}]},"baseFunctions":[74343],"documentation":{"id":77574,"nodeType":"StructuredDocumentation","src":"11676:530:161","text":" @dev Sends reply message to the program.\n Note that this function does not return `bytes32 messageId` of the sent message,\n if you want to calculate the `messageId` then use `gprimitives::MessageId::generate_reply(replied_to)`\n or use SDK in `ethexe/sdk/src/mirror.rs`.\n As result of execution, the `ReplyQueueingRequested` event will be emitted.\n @param _repliedTo Message ID to which the reply is sent.\n @param _payload The payload of the reply message."},"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":77581,"kind":"modifierInvocation","modifierName":{"id":77580,"name":"whenNotPaused","nameLocations":["12316:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77471,"src":"12316:13:161"},"nodeType":"ModifierInvocation","src":"12316:13:161"},{"id":77583,"kind":"modifierInvocation","modifierName":{"id":77582,"name":"onlyIfActive","nameLocations":["12338:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77410,"src":"12338:12:161"},"nodeType":"ModifierInvocation","src":"12338:12:161"},{"id":77585,"kind":"modifierInvocation","modifierName":{"id":77584,"name":"onlyAfterInitMessage","nameLocations":["12359:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77363,"src":"12359:20:161"},"nodeType":"ModifierInvocation","src":"12359:20:161"}],"name":"sendReply","nameLocation":"12220:9:161","parameters":{"id":77579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77576,"mutability":"mutable","name":"_repliedTo","nameLocation":"12238:10:161","nodeType":"VariableDeclaration","scope":77608,"src":"12230:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12230:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77578,"mutability":"mutable","name":"_payload","nameLocation":"12265:8:161","nodeType":"VariableDeclaration","scope":77608,"src":"12250:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77577,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12229:45:161"},"returnParameters":{"id":77586,"nodeType":"ParameterList","parameters":[],"src":"12384:0:161"},"scope":78741,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77627,"nodeType":"FunctionDefinition","src":"12841:165:161","nodes":[],"body":{"id":77626,"nodeType":"Block","src":"12938:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77621,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77611,"src":"12976:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77622,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12988:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12992:6:161","memberName":"sender","nodeType":"MemberAccess","src":"12988:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77620,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"12953:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12953:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77625,"nodeType":"EmitStatement","src":"12948:51:161"}]},"baseFunctions":[74349],"documentation":{"id":77609,"nodeType":"StructuredDocumentation","src":"12624:212:161","text":" @dev Claim value from message in mailbox.\n As result of execution, the `ValueClaimingRequested` event will be emitted.\n @param _claimedId Message ID of the value to be claimed."},"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":77614,"kind":"modifierInvocation","modifierName":{"id":77613,"name":"whenNotPaused","nameLocations":["12890:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77471,"src":"12890:13:161"},"nodeType":"ModifierInvocation","src":"12890:13:161"},{"id":77616,"kind":"modifierInvocation","modifierName":{"id":77615,"name":"onlyIfActive","nameLocations":["12904:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77410,"src":"12904:12:161"},"nodeType":"ModifierInvocation","src":"12904:12:161"},{"id":77618,"kind":"modifierInvocation","modifierName":{"id":77617,"name":"onlyAfterInitMessage","nameLocations":["12917:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":77363,"src":"12917:20:161"},"nodeType":"ModifierInvocation","src":"12917:20:161"}],"name":"claimValue","nameLocation":"12850:10:161","parameters":{"id":77612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77611,"mutability":"mutable","name":"_claimedId","nameLocation":"12869:10:161","nodeType":"VariableDeclaration","scope":77627,"src":"12861:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12861:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12860:20:161"},"returnParameters":{"id":77619,"nodeType":"ParameterList","parameters":[],"src":"12938:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77645,"nodeType":"FunctionDefinition","src":"13307:168:161","nodes":[],"body":{"id":77644,"nodeType":"Block","src":"13414:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":77641,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"13461:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77640,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"13429:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13429:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77643,"nodeType":"EmitStatement","src":"13424:44:161"}]},"baseFunctions":[74355],"documentation":{"id":77628,"nodeType":"StructuredDocumentation","src":"13012:290:161","text":" @dev Tops up the executable balance of the program.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up."},"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":77633,"kind":"modifierInvocation","modifierName":{"id":77632,"name":"whenNotPaused","nameLocations":["13364:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77471,"src":"13364:13:161"},"nodeType":"ModifierInvocation","src":"13364:13:161"},{"id":77635,"kind":"modifierInvocation","modifierName":{"id":77634,"name":"onlyIfActive","nameLocations":["13378:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77410,"src":"13378:12:161"},"nodeType":"ModifierInvocation","src":"13378:12:161"},{"arguments":[{"id":77637,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77630,"src":"13406:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":77638,"kind":"modifierInvocation","modifierName":{"id":77636,"name":"retrievingVara","nameLocations":["13391:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":77498,"src":"13391:14:161"},"nodeType":"ModifierInvocation","src":"13391:22:161"}],"name":"executableBalanceTopUp","nameLocation":"13316:22:161","parameters":{"id":77631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77630,"mutability":"mutable","name":"_value","nameLocation":"13347:6:161","nodeType":"VariableDeclaration","scope":77645,"src":"13339:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77629,"name":"uint128","nodeType":"ElementaryTypeName","src":"13339:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"13338:16:161"},"returnParameters":{"id":77639,"nodeType":"ParameterList","parameters":[],"src":"13414:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77693,"nodeType":"FunctionDefinition","src":"14182:374:161","nodes":[],"body":{"id":77692,"nodeType":"Block","src":"14357:199:161","nodes":[],"statements":[{"clauses":[{"block":{"id":77679,"nodeType":"Block","src":"14451:2:161","statements":[]},"errorName":"","id":77680,"nodeType":"TryCatchClause","src":"14451:2:161"},{"block":{"id":77681,"nodeType":"Block","src":"14460:2:161","statements":[]},"errorName":"","id":77682,"nodeType":"TryCatchClause","src":"14454:8:161"}],"externalCall":{"arguments":[{"expression":{"id":77667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14393:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14397:6:161","memberName":"sender","nodeType":"MemberAccess","src":"14393:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77671,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14413:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78741","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78741","typeString":"contract Mirror"}],"id":77670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14405:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77669,"name":"address","nodeType":"ElementaryTypeName","src":"14405:7:161","typeDescriptions":{}}},"id":77672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14405:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77673,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77648,"src":"14420:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77674,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77650,"src":"14428:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77675,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77652,"src":"14439:2:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":77676,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77654,"src":"14443:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77677,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77656,"src":"14447:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":77664,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77326,"src":"14378:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77663,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78649,"src":"14371:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$75024_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":77665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":77666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14386:6:161","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"14371:21:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":77678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14371:79:161","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77683,"nodeType":"TryStatement","src":"14367:95:161"},{"expression":{"arguments":[{"id":77685,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77648,"src":"14487:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77684,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77528,"src":"14471:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14471:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77687,"nodeType":"ExpressionStatement","src":"14471:23:161"},{"eventCall":{"arguments":[{"id":77689,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77648,"src":"14542:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77688,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"14510:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14510:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77691,"nodeType":"EmitStatement","src":"14505:44:161"}]},"baseFunctions":[74369],"documentation":{"id":77646,"nodeType":"StructuredDocumentation","src":"13481:696:161","text":" @dev Tops up the executable balance of the program.\n Unlike `Mirror.executableBalanceTopUp(...)`, this method allows to transfer WVARA ERC20 token from user to `Router`\n using permit signature, which can save one transaction for user.\n As result of execution, the `ExecutableBalanceTopUpRequested` event will be emitted.\n @param _value The amount of WVARA ERC20 token to be transferred from user to `Router` as executable balance top up.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"c6049692","implemented":true,"kind":"function","modifiers":[{"id":77659,"kind":"modifierInvocation","modifierName":{"id":77658,"name":"whenNotPaused","nameLocations":["14318:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77471,"src":"14318:13:161"},"nodeType":"ModifierInvocation","src":"14318:13:161"},{"id":77661,"kind":"modifierInvocation","modifierName":{"id":77660,"name":"onlyIfActive","nameLocations":["14340:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77410,"src":"14340:12:161"},"nodeType":"ModifierInvocation","src":"14340:12:161"}],"name":"executableBalanceTopUpWithPermit","nameLocation":"14191:32:161","parameters":{"id":77657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77648,"mutability":"mutable","name":"_value","nameLocation":"14232:6:161","nodeType":"VariableDeclaration","scope":77693,"src":"14224:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77647,"name":"uint128","nodeType":"ElementaryTypeName","src":"14224:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77650,"mutability":"mutable","name":"_deadline","nameLocation":"14248:9:161","nodeType":"VariableDeclaration","scope":77693,"src":"14240:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77649,"name":"uint256","nodeType":"ElementaryTypeName","src":"14240:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77652,"mutability":"mutable","name":"_v","nameLocation":"14265:2:161","nodeType":"VariableDeclaration","scope":77693,"src":"14259:8:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77651,"name":"uint8","nodeType":"ElementaryTypeName","src":"14259:5:161","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":77654,"mutability":"mutable","name":"_r","nameLocation":"14277:2:161","nodeType":"VariableDeclaration","scope":77693,"src":"14269:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14269:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77656,"mutability":"mutable","name":"_s","nameLocation":"14289:2:161","nodeType":"VariableDeclaration","scope":77693,"src":"14281:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14281:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14223:69:161"},"returnParameters":{"id":77662,"nodeType":"ParameterList","parameters":[],"src":"14357:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77711,"nodeType":"FunctionDefinition","src":"14802:208:161","nodes":[],"body":{"id":77710,"nodeType":"Block","src":"14867:143:161","nodes":[],"statements":[{"assignments":[null,77700],"declarations":[null,{"constant":false,"id":77700,"mutability":"mutable","name":"success","nameLocation":"14885:7:161","nodeType":"VariableDeclaration","scope":77710,"src":"14880:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77699,"name":"bool","nodeType":"ElementaryTypeName","src":"14880:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77703,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77701,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77973,"src":"14896:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14896:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"14877:52:161"},{"expression":{"arguments":[{"id":77705,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77700,"src":"14947:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77706,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74277,"src":"14956:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14956:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77704,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14939:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14939:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77709,"nodeType":"ExpressionStatement","src":"14939:64:161"}]},"baseFunctions":[74373],"documentation":{"id":77694,"nodeType":"StructuredDocumentation","src":"14562:235:161","text":" @dev Transfers locked value to the inheritor.\n Note that this function can be called only after program exited.\n As result of execution, the `LockedValueTransferRequested` event will be emitted."},"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":77697,"kind":"modifierInvocation","modifierName":{"id":77696,"name":"whenNotPaused","nameLocations":["14853:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77471,"src":"14853:13:161"},"nodeType":"ModifierInvocation","src":"14853:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"14811:30:161","parameters":{"id":77695,"nodeType":"ParameterList","parameters":[],"src":"14841:2:161"},"returnParameters":{"id":77698,"nodeType":"ParameterList","parameters":[],"src":"14867:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77790,"nodeType":"FunctionDefinition","src":"16008:749:161","nodes":[],"body":{"id":77789,"nodeType":"Block","src":"16163:594:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77726,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77341,"src":"16181:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16204:1:161","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":77728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16196:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77727,"name":"address","nodeType":"ElementaryTypeName","src":"16196:7:161","typeDescriptions":{}}},"id":77730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16196:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16181:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77732,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74279,"src":"16208:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16208:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77725,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16173:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16173:59:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77735,"nodeType":"ExpressionStatement","src":"16173:59:161"},{"expression":{"arguments":[{"id":77738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16251:8:161","subExpression":{"id":77737,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77344,"src":"16252:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77739,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74281,"src":"16261:17:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16261:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16243:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16243:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77742,"nodeType":"ExpressionStatement","src":"16243:38:161"},{"assignments":[77747],"declarations":[{"constant":false,"id":77747,"mutability":"mutable","name":"implementationSlot","nameLocation":"16324:18:161","nodeType":"VariableDeclaration","scope":77789,"src":"16292:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":77746,"nodeType":"UserDefinedTypeName","pathNode":{"id":77745,"name":"StorageSlot.AddressSlot","nameLocations":["16292:11:161","16304:11:161"],"nodeType":"IdentifierPath","referencedDeclaration":48971,"src":"16292:23:161"},"referencedDeclaration":48971,"src":"16292:23:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":77753,"initialValue":{"arguments":[{"expression":{"id":77750,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45701,"src":"16384:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45701_$","typeString":"type(library ERC1967Utils)"}},"id":77751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16397:19:161","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":45422,"src":"16384:32:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77748,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"16357:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":77749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16369:14:161","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":49000,"src":"16357:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48971_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":77752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16357:60:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16292:125:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77755,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77747,"src":"16436:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16455:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16436:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16472:1:161","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":77758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16464:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77757,"name":"address","nodeType":"ElementaryTypeName","src":"16464:7:161","typeDescriptions":{}}},"id":77760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16464:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16436:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77762,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74283,"src":"16476:22:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16428:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77765,"nodeType":"ExpressionStatement","src":"16428:73:161"},{"expression":{"id":77768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77766,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77341,"src":"16512:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77767,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77714,"src":"16526:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16512:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77769,"nodeType":"ExpressionStatement","src":"16512:26:161"},{"expression":{"id":77772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77770,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77344,"src":"16548:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77771,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77718,"src":"16558:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16548:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77773,"nodeType":"ExpressionStatement","src":"16548:18:161"},{"expression":{"id":77778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77774,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77747,"src":"16576:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48971_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":77776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16595:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48970,"src":"16576:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77777,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77716,"src":"16603:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16576:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77779,"nodeType":"ExpressionStatement","src":"16576:40:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77780,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77720,"src":"16631:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16660:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16631:30:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77788,"nodeType":"IfStatement","src":"16627:124:161","trueBody":{"id":77787,"nodeType":"Block","src":"16663:88:161","statements":[{"eventCall":{"arguments":[{"id":77784,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77720,"src":"16714:25:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77783,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"16682:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16682:58:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77786,"nodeType":"EmitStatement","src":"16677:63:161"}]}}]},"baseFunctions":[74385],"documentation":{"id":77712,"nodeType":"StructuredDocumentation","src":"15070:933:161","text":" @dev Initializes the contract with the given parameters.\n Note that ERC-1167 (Minimal Proxy Contract) does not support constructors by default,\n so we do the initialization separately after creating `Mirror` in this method.\n @param _initializer The address of the initializer. Only this address will be able to send the first (init) message.\n @param _abiInterface The address of the ABI interface. This address will be displayed as \"proxy implementation\"\n and is necessary to show the available methods of `Mirror` smart contract on Etherscan.\n In case it is a Sails framework smart contract, the user can set his own ABI.\n @param _isSmall The flag indicating if the program is small. See the description of `Mirror.isSmall` field for details.\n @param _initialExecutableBalance The initial executable balance to be transferred to the program."},"functionSelector":"bfa28576","implemented":true,"kind":"function","modifiers":[{"id":77723,"kind":"modifierInvocation","modifierName":{"id":77722,"name":"onlyRouter","nameLocations":["16148:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77449,"src":"16148:10:161"},"nodeType":"ModifierInvocation","src":"16148:10:161"}],"name":"initialize","nameLocation":"16017:10:161","parameters":{"id":77721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77714,"mutability":"mutable","name":"_initializer","nameLocation":"16036:12:161","nodeType":"VariableDeclaration","scope":77790,"src":"16028:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77713,"name":"address","nodeType":"ElementaryTypeName","src":"16028:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77716,"mutability":"mutable","name":"_abiInterface","nameLocation":"16058:13:161","nodeType":"VariableDeclaration","scope":77790,"src":"16050:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77715,"name":"address","nodeType":"ElementaryTypeName","src":"16050:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77718,"mutability":"mutable","name":"_isSmall","nameLocation":"16078:8:161","nodeType":"VariableDeclaration","scope":77790,"src":"16073:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77717,"name":"bool","nodeType":"ElementaryTypeName","src":"16073:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":77720,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"16096:25:161","nodeType":"VariableDeclaration","scope":77790,"src":"16088:33:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77719,"name":"uint128","nodeType":"ElementaryTypeName","src":"16088:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"16027:95:161"},"returnParameters":{"id":77724,"nodeType":"ParameterList","parameters":[],"src":"16163:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77890,"nodeType":"FunctionDefinition","src":"16971:1748:161","nodes":[],"body":{"id":77889,"nodeType":"Block","src":"17143:1576:161","nodes":[],"statements":[{"documentation":" @dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77802,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"17254:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17266:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83223,"src":"17254:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":77806,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17285:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78741","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78741","typeString":"contract Mirror"}],"id":77805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17277:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77804,"name":"address","nodeType":"ElementaryTypeName","src":"17277:7:161","typeDescriptions":{}}},"id":77807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17277:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17254:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77809,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74285,"src":"17292:14:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17292:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77801,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17246:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17246:63:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77812,"nodeType":"ExpressionStatement","src":"17246:63:161"},{"condition":{"expression":{"id":77813,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"17442:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17454:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83238,"src":"17442:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":77821,"nodeType":"IfStatement","src":"17438:113:161","trueBody":{"id":77820,"nodeType":"Block","src":"17482:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":77816,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"17513:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17525:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83235,"src":"17513:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77815,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77555,"src":"17496:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17496:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77819,"nodeType":"ExpressionStatement","src":"17496:44:161"}]}},{"assignments":[77824],"declarations":[{"constant":false,"id":77824,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"17637:18:161","nodeType":"VariableDeclaration","scope":77889,"src":"17629:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77823,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17629:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send all outgoing messages.","id":77829,"initialValue":{"arguments":[{"expression":{"id":77826,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"17672:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17684:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":83248,"src":"17672:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83180_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$83180_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":77825,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78071,"src":"17658:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$83180_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":77828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17658:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17629:64:161"},{"assignments":[77832],"declarations":[{"constant":false,"id":77832,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"17779:15:161","nodeType":"VariableDeclaration","scope":77889,"src":"17771:23:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17771:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Send value for each claim.","id":77837,"initialValue":{"arguments":[{"expression":{"id":77834,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"17810:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17822:11:161","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":83243,"src":"17810:23:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83289_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83289_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":77833,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78579,"src":"17797:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$83289_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":77836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17797:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17771:63:161"},{"condition":{"expression":{"id":77838,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"17914:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17926:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"17914:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Set inheritor if exited.","falseBody":{"id":77858,"nodeType":"Block","src":"18001:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77847,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18023:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18035:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83232,"src":"18023:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18056:1:161","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":77850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18048:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77849,"name":"address","nodeType":"ElementaryTypeName","src":"18048:7:161","typeDescriptions":{}}},"id":77852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18048:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18023:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":77854,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74287,"src":"18060:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18060:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":77846,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18015:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":77856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18015:67:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77857,"nodeType":"ExpressionStatement","src":"18015:67:161"}]},"id":77859,"nodeType":"IfStatement","src":"17910:183:161","trueBody":{"id":77845,"nodeType":"Block","src":"17934:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":77841,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"17962:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17974:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83232,"src":"17962:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77840,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78612,"src":"17948:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17948:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77844,"nodeType":"ExpressionStatement","src":"17948:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77860,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77329,"src":"18181:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77861,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18194:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"18194:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18181:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Update the state hash if changed.","id":77870,"nodeType":"IfStatement","src":"18177:110:161","trueBody":{"id":77869,"nodeType":"Block","src":"18220:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":77865,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18251:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18263:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"18251:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77864,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78627,"src":"18234:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18234:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77868,"nodeType":"ExpressionStatement","src":"18234:42:161"}]}},{"documentation":" @dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":77873,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18425:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18437:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83223,"src":"18425:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77875,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18458:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18470:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":83226,"src":"18458:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77877,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18496:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18508:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":83229,"src":"18496:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":77879,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18528:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18540:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":83232,"src":"18528:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77881,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18563:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18575:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83235,"src":"18563:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":77883,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77794,"src":"18603:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":77884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18615:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83238,"src":"18603:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":77885,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77832,"src":"18655:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77886,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77824,"src":"18684:18:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77871,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"18387:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":77872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18392:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":83532,"src":"18387:24:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32) pure returns (bytes32)"}},"id":77887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18387:325:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77800,"id":77888,"nodeType":"Return","src":"18380:332:161"}]},"baseFunctions":[74394],"documentation":{"id":77791,"nodeType":"StructuredDocumentation","src":"16763:203:161","text":" @dev Performs state transition for the `Mirror` contract.\n @param _transition The state transition data.\n @return transitionHash The hash of the performed state transition."},"functionSelector":"084f443a","implemented":true,"kind":"function","modifiers":[{"id":77797,"kind":"modifierInvocation","modifierName":{"id":77796,"name":"onlyRouter","nameLocations":["17087:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":77449,"src":"17087:10:161"},"nodeType":"ModifierInvocation","src":"17087:10:161"}],"name":"performStateTransition","nameLocation":"16980:22:161","parameters":{"id":77795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77794,"mutability":"mutable","name":"_transition","nameLocation":"17033:11:161","nodeType":"VariableDeclaration","scope":77890,"src":"17003:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":77793,"nodeType":"UserDefinedTypeName","pathNode":{"id":77792,"name":"Gear.StateTransition","nameLocations":["17003:4:161","17008:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":83249,"src":"17003:20:161"},"referencedDeclaration":83249,"src":"17003:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"17002:43:161"},"returnParameters":{"id":77800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77799,"mutability":"mutable","name":"transitionHash","nameLocation":"17123:14:161","nodeType":"VariableDeclaration","scope":77890,"src":"17115:22:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17115:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17114:24:161"},"scope":78741,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":77940,"nodeType":"FunctionDefinition","src":"19152:760:161","nodes":[],"body":{"id":77939,"nodeType":"Block","src":"19335:577:161","nodes":[],"statements":[{"assignments":[77905],"declarations":[{"constant":false,"id":77905,"mutability":"mutable","name":"_value","nameLocation":"19353:6:161","nodeType":"VariableDeclaration","scope":77939,"src":"19345:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77904,"name":"uint128","nodeType":"ElementaryTypeName","src":"19345:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77911,"initialValue":{"arguments":[{"expression":{"id":77908,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19370:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19374:5:161","memberName":"value","nodeType":"MemberAccess","src":"19370:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19362:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77906,"name":"uint128","nodeType":"ElementaryTypeName","src":"19362:7:161","typeDescriptions":{}}},"id":77910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19362:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"19345:35:161"},{"expression":{"arguments":[{"id":77913,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77905,"src":"19408:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77912,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77555,"src":"19391:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19391:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77915,"nodeType":"ExpressionStatement","src":"19391:24:161"},{"assignments":[77917],"declarations":[{"constant":false,"id":77917,"mutability":"mutable","name":"_nonce","nameLocation":"19434:6:161","nodeType":"VariableDeclaration","scope":77939,"src":"19426:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77916,"name":"uint256","nodeType":"ElementaryTypeName","src":"19426:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77919,"initialValue":{"id":77918,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77332,"src":"19443:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19426:22:161"},{"assignments":[77922],"declarations":[{"constant":false,"id":77922,"mutability":"mutable","name":"id","nameLocation":"19617:2:161","nodeType":"VariableDeclaration","scope":77939,"src":"19609:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77921,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19609:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate unique message ID by formula:\n - `keccak256(abi.encodePacked(address(this), nonce++))`","id":77923,"nodeType":"VariableDeclarationStatement","src":"19609:10:161"},{"AST":{"nativeSrc":"19654:129:161","nodeType":"YulBlock","src":"19654:129:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19675:4:161","nodeType":"YulLiteral","src":"19675:4:161","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"19685:2:161","nodeType":"YulLiteral","src":"19685:2:161","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"19689:7:161","nodeType":"YulIdentifier","src":"19689:7:161"},"nativeSrc":"19689:9:161","nodeType":"YulFunctionCall","src":"19689:9:161"}],"functionName":{"name":"shl","nativeSrc":"19681:3:161","nodeType":"YulIdentifier","src":"19681:3:161"},"nativeSrc":"19681:18:161","nodeType":"YulFunctionCall","src":"19681:18:161"}],"functionName":{"name":"mstore","nativeSrc":"19668:6:161","nodeType":"YulIdentifier","src":"19668:6:161"},"nativeSrc":"19668:32:161","nodeType":"YulFunctionCall","src":"19668:32:161"},"nativeSrc":"19668:32:161","nodeType":"YulExpressionStatement","src":"19668:32:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19720:4:161","nodeType":"YulLiteral","src":"19720:4:161","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"19726:6:161","nodeType":"YulIdentifier","src":"19726:6:161"}],"functionName":{"name":"mstore","nativeSrc":"19713:6:161","nodeType":"YulIdentifier","src":"19713:6:161"},"nativeSrc":"19713:20:161","nodeType":"YulFunctionCall","src":"19713:20:161"},"nativeSrc":"19713:20:161","nodeType":"YulExpressionStatement","src":"19713:20:161"},{"nativeSrc":"19746:27:161","nodeType":"YulAssignment","src":"19746:27:161","value":{"arguments":[{"kind":"number","nativeSrc":"19762:4:161","nodeType":"YulLiteral","src":"19762:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19768:4:161","nodeType":"YulLiteral","src":"19768:4:161","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"19752:9:161","nodeType":"YulIdentifier","src":"19752:9:161"},"nativeSrc":"19752:21:161","nodeType":"YulFunctionCall","src":"19752:21:161"},"variableNames":[{"name":"id","nativeSrc":"19746:2:161","nodeType":"YulIdentifier","src":"19746:2:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77917,"isOffset":false,"isSlot":false,"src":"19726:6:161","valueSize":1},{"declaration":77922,"isOffset":false,"isSlot":false,"src":"19746:2:161","valueSize":1}],"flags":["memory-safe"],"id":77924,"nodeType":"InlineAssembly","src":"19629:154:161"},{"expression":{"id":77926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19792:7:161","subExpression":{"id":77925,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77332,"src":"19792:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77927,"nodeType":"ExpressionStatement","src":"19792:7:161"},{"eventCall":{"arguments":[{"id":77929,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77922,"src":"19840:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77930,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19844:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19848:6:161","memberName":"sender","nodeType":"MemberAccess","src":"19844:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77932,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77893,"src":"19856:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":77933,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77905,"src":"19866:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":77934,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77895,"src":"19874:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"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_bool","typeString":"bool"}],"id":77928,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"19815:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":77935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19815:70:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77936,"nodeType":"EmitStatement","src":"19810:75:161"},{"expression":{"id":77937,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77922,"src":"19903:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77903,"id":77938,"nodeType":"Return","src":"19896:9:161"}]},"documentation":{"id":77891,"nodeType":"StructuredDocumentation","src":"18783:364:161","text":" @dev Internal implementation of `sendMessage` function.\n This function is used to send message to the program and emit `MessageQueueingRequested` event.\n @param _payload The payload of the message.\n @param _callReply Whether to set `call` flag in the reply message.\n @return messageId Message ID of the sent message."},"implemented":true,"kind":"function","modifiers":[{"id":77898,"kind":"modifierInvocation","modifierName":{"id":77897,"name":"onlyIfActive","nameLocations":["19240:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77410,"src":"19240:12:161"},"nodeType":"ModifierInvocation","src":"19240:12:161"},{"id":77900,"kind":"modifierInvocation","modifierName":{"id":77899,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["19261:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":77384,"src":"19261:33:161"},"nodeType":"ModifierInvocation","src":"19261:33:161"}],"name":"_sendMessage","nameLocation":"19161:12:161","parameters":{"id":77896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77893,"mutability":"mutable","name":"_payload","nameLocation":"19189:8:161","nodeType":"VariableDeclaration","scope":77940,"src":"19174:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77892,"name":"bytes","nodeType":"ElementaryTypeName","src":"19174:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":77895,"mutability":"mutable","name":"_callReply","nameLocation":"19204:10:161","nodeType":"VariableDeclaration","scope":77940,"src":"19199:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77894,"name":"bool","nodeType":"ElementaryTypeName","src":"19199:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19173:42:161"},"returnParameters":{"id":77903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77902,"mutability":"mutable","name":"messageId","nameLocation":"19320:9:161","nodeType":"VariableDeclaration","scope":77940,"src":"19312:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19312:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19311:19:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77973,"nodeType":"FunctionDefinition","src":"20241:470:161","nodes":[],"body":{"id":77972,"nodeType":"Block","src":"20390:321:161","nodes":[],"statements":[{"assignments":[77951],"declarations":[{"constant":false,"id":77951,"mutability":"mutable","name":"balance","nameLocation":"20408:7:161","nodeType":"VariableDeclaration","scope":77972,"src":"20400:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77950,"name":"uint256","nodeType":"ElementaryTypeName","src":"20400:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77957,"initialValue":{"expression":{"arguments":[{"id":77954,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20426:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$78741","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$78741","typeString":"contract Mirror"}],"id":77953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20418:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77952,"name":"address","nodeType":"ElementaryTypeName","src":"20418:7:161","typeDescriptions":{}}},"id":77955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20418:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20432:7:161","memberName":"balance","nodeType":"MemberAccess","src":"20418:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20400:39:161"},{"assignments":[77959],"declarations":[{"constant":false,"id":77959,"mutability":"mutable","name":"balance128","nameLocation":"20607:10:161","nodeType":"VariableDeclaration","scope":77972,"src":"20599:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77958,"name":"uint128","nodeType":"ElementaryTypeName","src":"20599:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77964,"initialValue":{"arguments":[{"id":77962,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77951,"src":"20628:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20620:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77960,"name":"uint128","nodeType":"ElementaryTypeName","src":"20620:7:161","typeDescriptions":{}}},"id":77963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20620:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"20599:37:161"},{"expression":{"components":[{"id":77965,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77959,"src":"20654:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":77967,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77338,"src":"20681:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77968,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77959,"src":"20692:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77966,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78679,"src":"20666:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77970,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20653:51:161","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":77949,"id":77971,"nodeType":"Return","src":"20646:58:161"}]},"documentation":{"id":77941,"nodeType":"StructuredDocumentation","src":"19918:318:161","text":" @dev Internal implementation of `transferLockedValueToInheritor` function.\n Note that this function can be called only after program exited.\n @return valueTransferred The amount of WVARA transferred.\n @return transferSuccess The flag indicating if the transfer was successful."},"implemented":true,"kind":"function","modifiers":[{"id":77944,"kind":"modifierInvocation","modifierName":{"id":77943,"name":"onlyIfExited","nameLocations":["20308:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77430,"src":"20308:12:161"},"nodeType":"ModifierInvocation","src":"20308:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"20250:31:161","parameters":{"id":77942,"nodeType":"ParameterList","parameters":[],"src":"20281:2:161"},"returnParameters":{"id":77949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77946,"mutability":"mutable","name":"valueTransferred","nameLocation":"20346:16:161","nodeType":"VariableDeclaration","scope":77973,"src":"20338:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77945,"name":"uint128","nodeType":"ElementaryTypeName","src":"20338:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77948,"mutability":"mutable","name":"transferSuccess","nameLocation":"20369:15:161","nodeType":"VariableDeclaration","scope":77973,"src":"20364:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77947,"name":"bool","nodeType":"ElementaryTypeName","src":"20364:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20337:48:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78071,"nodeType":"FunctionDefinition","src":"21279:1232:161","nodes":[],"body":{"id":78070,"nodeType":"Block","src":"21363:1148:161","nodes":[],"statements":[{"assignments":[77984],"declarations":[{"constant":false,"id":77984,"mutability":"mutable","name":"messagesLen","nameLocation":"21381:11:161","nodeType":"VariableDeclaration","scope":78070,"src":"21373:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77983,"name":"uint256","nodeType":"ElementaryTypeName","src":"21373:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77987,"initialValue":{"expression":{"id":77985,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77978,"src":"21395:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83180_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21405:6:161","memberName":"length","nodeType":"MemberAccess","src":"21395:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21373:38:161"},{"assignments":[77989],"declarations":[{"constant":false,"id":77989,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"21429:18:161","nodeType":"VariableDeclaration","scope":78070,"src":"21421:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77988,"name":"uint256","nodeType":"ElementaryTypeName","src":"21421:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77993,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77990,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77984,"src":"21450:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21464:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21450:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21421:45:161"},{"assignments":[77995],"declarations":[{"constant":false,"id":77995,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"21484:20:161","nodeType":"VariableDeclaration","scope":78070,"src":"21476:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77994,"name":"uint256","nodeType":"ElementaryTypeName","src":"21476:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78000,"initialValue":{"arguments":[{"id":77998,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77989,"src":"21523:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77996,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21507:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":77997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21514:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"21507:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21507:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21476:66:161"},{"assignments":[78002],"declarations":[{"constant":false,"id":78002,"mutability":"mutable","name":"offset","nameLocation":"21560:6:161","nodeType":"VariableDeclaration","scope":78070,"src":"21552:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78001,"name":"uint256","nodeType":"ElementaryTypeName","src":"21552:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78004,"initialValue":{"hexValue":"30","id":78003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21569:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21552:18:161"},{"body":{"id":78061,"nodeType":"Block","src":"21623:785:161","statements":[{"assignments":[78019],"declarations":[{"constant":false,"id":78019,"mutability":"mutable","name":"message","nameLocation":"21659:7:161","nodeType":"VariableDeclaration","scope":78061,"src":"21637:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78018,"nodeType":"UserDefinedTypeName","pathNode":{"id":78017,"name":"Gear.Message","nameLocations":["21637:4:161","21642:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83180,"src":"21637:12:161"},"referencedDeclaration":83180,"src":"21637:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":78023,"initialValue":{"baseExpression":{"id":78020,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77978,"src":"21669:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83180_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":78022,"indexExpression":{"id":78021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78006,"src":"21679:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21669:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"21637:44:161"},{"assignments":[78026],"declarations":[{"constant":false,"id":78026,"mutability":"mutable","name":"messageHash","nameLocation":"21787:11:161","nodeType":"VariableDeclaration","scope":78061,"src":"21779:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21779:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev Generate hash for the message.","id":78031,"initialValue":{"arguments":[{"id":78029,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78019,"src":"21818:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":78027,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"21801:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":78028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21806:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":83473,"src":"21801:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$83180_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":78030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21801:25:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21779:47:161"},{"documentation":" @dev Store the message hash in memory at messagesHashes[offset : offset+32].","expression":{"arguments":[{"id":78035,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77995,"src":"21990:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78036,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78002,"src":"22012:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78037,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78026,"src":"22020:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78032,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"21964:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21971:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"21964:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21964:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78039,"nodeType":"ExpressionStatement","src":"21964:68:161"},{"id":78044,"nodeType":"UncheckedBlock","src":"22046:55:161","statements":[{"expression":{"id":78042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78040,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78002,"src":"22074:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22084:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22074:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78043,"nodeType":"ExpressionStatement","src":"22074:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78045,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78019,"src":"22240:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22248:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"22240:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22261:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83215,"src":"22240:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22267:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22240:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev Send the message based on its type (`Gear.Message` or `Gear.Reply`).","falseBody":{"id":78059,"nodeType":"Block","src":"22339:59:161","statements":[{"expression":{"arguments":[{"id":78056,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78019,"src":"22375:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78055,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78466,"src":"22357:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83180_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22357:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78058,"nodeType":"ExpressionStatement","src":"22357:26:161"}]},"id":78060,"nodeType":"IfStatement","src":"22236:162:161","trueBody":{"id":78054,"nodeType":"Block","src":"22270:63:161","statements":[{"expression":{"arguments":[{"id":78051,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78019,"src":"22310:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78050,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78125,"src":"22288:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83180_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":78052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22288:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78053,"nodeType":"ExpressionStatement","src":"22288:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78009,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78006,"src":"21601:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78010,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77984,"src":"21605:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21601:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78062,"initializationExpression":{"assignments":[78006],"declarations":[{"constant":false,"id":78006,"mutability":"mutable","name":"i","nameLocation":"21594:1:161","nodeType":"VariableDeclaration","scope":78062,"src":"21586:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78005,"name":"uint256","nodeType":"ElementaryTypeName","src":"21586:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78008,"initialValue":{"hexValue":"30","id":78007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21598:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21586:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"21618:3:161","subExpression":{"id":78012,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78006,"src":"21618:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78014,"nodeType":"ExpressionStatement","src":"21618:3:161"},"nodeType":"ForStatement","src":"21581:827:161"},{"expression":{"arguments":[{"id":78065,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77995,"src":"22460:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22482:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78067,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77989,"src":"22485:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78063,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"22425:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22432:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"22425:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22425:79:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77982,"id":78069,"nodeType":"Return","src":"22418:86:161"}]},"documentation":{"id":77974,"nodeType":"StructuredDocumentation","src":"20981:293:161","text":" @dev Internal implementation of `_sendMessages` function.\n It sends all outgoing messages from the `Mirror` contract and emits appropriate events.\n @param _messages The array of messages to be sent.\n @return messagesHash The hash of the sent messages."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"21288:13:161","parameters":{"id":77979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77978,"mutability":"mutable","name":"_messages","nameLocation":"21326:9:161","nodeType":"VariableDeclaration","scope":78071,"src":"21302:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83180_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":77976,"nodeType":"UserDefinedTypeName","pathNode":{"id":77975,"name":"Gear.Message","nameLocations":["21302:4:161","21307:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83180,"src":"21302:12:161"},"referencedDeclaration":83180,"src":"21302:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_storage_ptr","typeString":"struct Gear.Message"}},"id":77977,"nodeType":"ArrayTypeName","src":"21302:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$83180_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"21301:35:161"},"returnParameters":{"id":77982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78071,"src":"21354:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77980,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21354:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21353:9:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78125,"nodeType":"FunctionDefinition","src":"23021:1125:161","nodes":[],"body":{"id":78124,"nodeType":"Block","src":"23092:1054:161","nodes":[],"statements":[{"condition":{"id":78081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23278:37:161","subExpression":{"arguments":[{"id":78079,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"23306:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":78078,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78335,"src":"23279:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$83180_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":78080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23279:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev First, we'll try to parse event from the Sails framework\n and then emit it on behalf of the `Mirror` smart contract.","id":78123,"nodeType":"IfStatement","src":"23274:866:161","trueBody":{"id":78122,"nodeType":"Block","src":"23317:823:161","statements":[{"condition":{"expression":{"id":78082,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"23585:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23594:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83179,"src":"23585:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78110,"nodeType":"IfStatement","src":"23581:453:161","trueBody":{"id":78109,"nodeType":"Block","src":"23600:434:161","statements":[{"assignments":[78085,null],"declarations":[{"constant":false,"id":78085,"mutability":"mutable","name":"success","nameLocation":"23624:7:161","nodeType":"VariableDeclaration","scope":78109,"src":"23619:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78084,"name":"bool","nodeType":"ElementaryTypeName","src":"23619:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78094,"initialValue":{"arguments":[{"expression":{"id":78091,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"23676:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23685:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83169,"src":"23676:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":78086,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"23636:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23645:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"23636:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23657:4:161","memberName":"call","nodeType":"MemberAccess","src":"23636:25:161","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":78090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23667:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"23636:39:161","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":78093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23636:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"23618:75:161"},{"condition":{"id":78096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23716:8:161","subExpression":{"id":78095,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"23717:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78108,"nodeType":"IfStatement","src":"23712:308:161","trueBody":{"id":78107,"nodeType":"Block","src":"23726:294:161","statements":[{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78098,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"23923:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23932:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83163,"src":"23923:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78100,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"23936:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23945:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"23936:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78102,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"23958:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23967:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"23958:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78097,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"23905:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23905:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78105,"nodeType":"EmitStatement","src":"23900:73:161"},{"functionReturnParameters":78077,"id":78106,"nodeType":"Return","src":"23995:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":78112,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"24061:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24070:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83163,"src":"24061:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78114,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"24074:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24083:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"24074:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78116,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"24096:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24105:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83169,"src":"24096:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78118,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78075,"src":"24114:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24123:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"24114:14:161","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":78111,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"24053:7:161","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":78120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24053:76:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78121,"nodeType":"EmitStatement","src":"24048:81:161"}]}}]},"documentation":{"id":78072,"nodeType":"StructuredDocumentation","src":"22517:499:161","text":" @dev Internal function to send message that goes to mailbox.\n Value never sent since goes to mailbox.\n Emits `Message` event if it is not event from Sails framework.\n If `_message.call = true`, then call will be made to `_message.destination`\n with _message.payload and gas limit of 500_000 to prevent DoS attacks.\n If call fails, then `MessageCallFailed` event will be emitted.\n @param _message The message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"23030:21:161","parameters":{"id":78076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78075,"mutability":"mutable","name":"_message","nameLocation":"23074:8:161","nodeType":"VariableDeclaration","scope":78125,"src":"23052:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78074,"nodeType":"UserDefinedTypeName","pathNode":{"id":78073,"name":"Gear.Message","nameLocations":["23052:4:161","23057:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83180,"src":"23052:12:161"},"referencedDeclaration":83180,"src":"23052:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"23051:32:161"},"returnParameters":{"id":78077,"nodeType":"ParameterList","parameters":[],"src":"23092:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78335,"nodeType":"FunctionDefinition","src":"27225:3845:161","nodes":[],"body":{"id":78334,"nodeType":"Block","src":"27329:3741:161","nodes":[],"statements":[{"assignments":[78135],"declarations":[{"constant":false,"id":78135,"mutability":"mutable","name":"payload","nameLocation":"27354:7:161","nodeType":"VariableDeclaration","scope":78334,"src":"27339:22:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78134,"name":"bytes","nodeType":"ElementaryTypeName","src":"27339:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78138,"initialValue":{"expression":{"id":78136,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78129,"src":"27364:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27373:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83169,"src":"27364:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"27339:41:161"},{"condition":{"id":78154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27395:86:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78139,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78129,"src":"27397:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27406:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"27397:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":78141,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77323,"src":"27421:14:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27397:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78143,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78129,"src":"27439:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27448:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"27439:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27457:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27439:19:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27397:61:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78148,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78135,"src":"27462:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27470:6:161","memberName":"length","nodeType":"MemberAccess","src":"27462:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27479:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27462:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27397:83:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78153,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27396:85:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78158,"nodeType":"IfStatement","src":"27391:129:161","trueBody":{"id":78157,"nodeType":"Block","src":"27483:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27504:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78133,"id":78156,"nodeType":"Return","src":"27497:12:161"}]}},{"assignments":[78160],"declarations":[{"constant":false,"id":78160,"mutability":"mutable","name":"topicsLength","nameLocation":"27538:12:161","nodeType":"VariableDeclaration","scope":78334,"src":"27530:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78159,"name":"uint256","nodeType":"ElementaryTypeName","src":"27530:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78161,"nodeType":"VariableDeclarationStatement","src":"27530:20:161"},{"AST":{"nativeSrc":"27585:224:161","nodeType":"YulBlock","src":"27585:224:161","statements":[{"nativeSrc":"27745:54:161","nodeType":"YulAssignment","src":"27745:54:161","value":{"arguments":[{"kind":"number","nativeSrc":"27765:3:161","nodeType":"YulLiteral","src":"27765:3:161","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"27783:14:161","nodeType":"YulIdentifier","src":"27783:14:161"}],"functionName":{"name":"calldataload","nativeSrc":"27770:12:161","nodeType":"YulIdentifier","src":"27770:12:161"},"nativeSrc":"27770:28:161","nodeType":"YulFunctionCall","src":"27770:28:161"}],"functionName":{"name":"shr","nativeSrc":"27761:3:161","nodeType":"YulIdentifier","src":"27761:3:161"},"nativeSrc":"27761:38:161","nodeType":"YulFunctionCall","src":"27761:38:161"},"variableNames":[{"name":"topicsLength","nativeSrc":"27745:12:161","nodeType":"YulIdentifier","src":"27745:12:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78135,"isOffset":true,"isSlot":false,"src":"27783:14:161","suffix":"offset","valueSize":1},{"declaration":78160,"isOffset":false,"isSlot":false,"src":"27745:12:161","valueSize":1}],"flags":["memory-safe"],"id":78162,"nodeType":"InlineAssembly","src":"27560:249:161"},{"condition":{"id":78171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27823:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78163,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78160,"src":"27825:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":78164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27841:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"27825:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78166,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78160,"src":"27846:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":78167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27862:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"27846:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27825:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78170,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27824:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78175,"nodeType":"IfStatement","src":"27819:84:161","trueBody":{"id":78174,"nodeType":"Block","src":"27866:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27887:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78133,"id":78173,"nodeType":"Return","src":"27880:12:161"}]}},{"assignments":[78177],"declarations":[{"constant":false,"id":78177,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"27921:19:161","nodeType":"VariableDeclaration","scope":78334,"src":"27913:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78176,"name":"uint256","nodeType":"ElementaryTypeName","src":"27913:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78178,"nodeType":"VariableDeclarationStatement","src":"27913:27:161"},{"id":78187,"nodeType":"UncheckedBlock","src":"27950:78:161","statements":[{"expression":{"id":78185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78179,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"27974:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":78180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27996:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78181,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78160,"src":"28000:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28015:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"28000:17:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27996:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27974:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78186,"nodeType":"ExpressionStatement","src":"27974:43:161"}]},{"condition":{"id":78193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28042:40:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78188,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78135,"src":"28044:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28052:6:161","memberName":"length","nodeType":"MemberAccess","src":"28044:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":78190,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"28062:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28044:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78192,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28043:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78197,"nodeType":"IfStatement","src":"28038:83:161","trueBody":{"id":78196,"nodeType":"Block","src":"28084:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"28105:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78133,"id":78195,"nodeType":"Return","src":"28098:12:161"}]}},{"assignments":[78200],"declarations":[{"constant":false,"id":78200,"mutability":"mutable","name":"topic1","nameLocation":"28224:6:161","nodeType":"VariableDeclaration","scope":78334,"src":"28216:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28216:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`","id":78201,"nodeType":"VariableDeclarationStatement","src":"28216:14:161"},{"AST":{"nativeSrc":"28265:70:161","nodeType":"YulBlock","src":"28265:70:161","statements":[{"nativeSrc":"28279:46:161","nodeType":"YulAssignment","src":"28279:46:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"28306:14:161","nodeType":"YulIdentifier","src":"28306:14:161"},{"kind":"number","nativeSrc":"28322:1:161","nodeType":"YulLiteral","src":"28322:1:161","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28302:3:161","nodeType":"YulIdentifier","src":"28302:3:161"},"nativeSrc":"28302:22:161","nodeType":"YulFunctionCall","src":"28302:22:161"}],"functionName":{"name":"calldataload","nativeSrc":"28289:12:161","nodeType":"YulIdentifier","src":"28289:12:161"},"nativeSrc":"28289:36:161","nodeType":"YulFunctionCall","src":"28289:36:161"},"variableNames":[{"name":"topic1","nativeSrc":"28279:6:161","nodeType":"YulIdentifier","src":"28279:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78135,"isOffset":true,"isSlot":false,"src":"28306:14:161","suffix":"offset","valueSize":1},{"declaration":78200,"isOffset":false,"isSlot":false,"src":"28279:6:161","valueSize":1}],"flags":["memory-safe"],"id":78202,"nodeType":"InlineAssembly","src":"28240:95:161"},{"condition":{"id":78273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"28891:763:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78203,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"28906:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78204,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"28916:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28929:8:161","memberName":"selector","nodeType":"MemberAccess","src":"28916:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28906:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78207,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"28953:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78208,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74154,"src":"28963:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":78209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28988:8:161","memberName":"selector","nodeType":"MemberAccess","src":"28963:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28953:43:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:90:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78212,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29012:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78213,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"29022:22:161","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":78214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29045:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29022:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29012:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:147:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78217,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29069:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78218,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74172,"src":"29079:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":78219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29102:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29079:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29069:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:204:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78222,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29126:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78223,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"29136:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29163:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29136:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29126:45:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:265:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78227,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29187:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78228,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74182,"src":"29197:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29229:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29197:40:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29187:50:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:331:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78232,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29253:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78233,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74193,"src":"29263:7:161","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":78234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29271:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29263:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29253:26:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:373:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78237,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29295:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78238,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74202,"src":"29305:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":78239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29323:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29305:26:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29295:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:425:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78242,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29347:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78243,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"29357:5:161","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":78244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29363:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29357:14:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29347:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:465:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78247,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29387:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78248,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"29397:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29413:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29397:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29387:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:515:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78252,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29437:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78253,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"29447:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29460:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29447:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29437:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:562:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78257,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29484:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78258,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"29494:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29531:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29494:45:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29484:55:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:633:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78262,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29555:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78263,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"29565:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29585:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29565:28:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29555:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:687:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":78270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78267,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78200,"src":"29609:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":78268,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"29619:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29636:8:161","memberName":"selector","nodeType":"MemberAccess","src":"29619:25:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"29609:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"28906:738:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":78272,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28892:762:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":78277,"nodeType":"IfStatement","src":"28887:806:161","trueBody":{"id":78276,"nodeType":"Block","src":"29656:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":78274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29677:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78133,"id":78275,"nodeType":"Return","src":"29670:12:161"}]}},{"assignments":[78279],"declarations":[{"constant":false,"id":78279,"mutability":"mutable","name":"size","nameLocation":"29744:4:161","nodeType":"VariableDeclaration","scope":78334,"src":"29736:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78278,"name":"uint256","nodeType":"ElementaryTypeName","src":"29736:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78280,"nodeType":"VariableDeclarationStatement","src":"29736:12:161"},{"id":78288,"nodeType":"UncheckedBlock","src":"29758:78:161","statements":[{"expression":{"id":78286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78281,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78279,"src":"29782:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78282,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78135,"src":"29789:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29797:6:161","memberName":"length","nodeType":"MemberAccess","src":"29789:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78284,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78177,"src":"29806:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29789:36:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29782:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78287,"nodeType":"ExpressionStatement","src":"29782:43:161"}]},{"assignments":[78290],"declarations":[{"constant":false,"id":78290,"mutability":"mutable","name":"memPtr","nameLocation":"29854:6:161","nodeType":"VariableDeclaration","scope":78334,"src":"29846:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78289,"name":"uint256","nodeType":"ElementaryTypeName","src":"29846:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78295,"initialValue":{"arguments":[{"id":78293,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78279,"src":"29879:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78291,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"29863:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29870:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"29863:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29863:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29846:38:161"},{"AST":{"nativeSrc":"29919:92:161","nodeType":"YulBlock","src":"29919:92:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"29946:6:161","nodeType":"YulIdentifier","src":"29946:6:161"},{"arguments":[{"name":"payload.offset","nativeSrc":"29958:14:161","nodeType":"YulIdentifier","src":"29958:14:161"},{"name":"topicsLengthInBytes","nativeSrc":"29974:19:161","nodeType":"YulIdentifier","src":"29974:19:161"}],"functionName":{"name":"add","nativeSrc":"29954:3:161","nodeType":"YulIdentifier","src":"29954:3:161"},"nativeSrc":"29954:40:161","nodeType":"YulFunctionCall","src":"29954:40:161"},{"name":"size","nativeSrc":"29996:4:161","nodeType":"YulIdentifier","src":"29996:4:161"}],"functionName":{"name":"calldatacopy","nativeSrc":"29933:12:161","nodeType":"YulIdentifier","src":"29933:12:161"},"nativeSrc":"29933:68:161","nodeType":"YulFunctionCall","src":"29933:68:161"},"nativeSrc":"29933:68:161","nodeType":"YulExpressionStatement","src":"29933:68:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78290,"isOffset":false,"isSlot":false,"src":"29946:6:161","valueSize":1},{"declaration":78135,"isOffset":true,"isSlot":false,"src":"29958:14:161","suffix":"offset","valueSize":1},{"declaration":78279,"isOffset":false,"isSlot":false,"src":"29996:4:161","valueSize":1},{"declaration":78177,"isOffset":false,"isSlot":false,"src":"29974:19:161","valueSize":1}],"flags":["memory-safe"],"id":78296,"nodeType":"InlineAssembly","src":"29894:117:161"},{"assignments":[78299],"declarations":[{"constant":false,"id":78299,"mutability":"mutable","name":"topic2","nameLocation":"30166:6:161","nodeType":"VariableDeclaration","scope":78334,"src":"30158:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30158:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":" @dev We use offset 1 to skip `uint8 topicsLength`.\n Regular offsets: `32`, `64`, `96`.","id":78300,"nodeType":"VariableDeclarationStatement","src":"30158:14:161"},{"assignments":[78302],"declarations":[{"constant":false,"id":78302,"mutability":"mutable","name":"topic3","nameLocation":"30190:6:161","nodeType":"VariableDeclaration","scope":78334,"src":"30182:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30182:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78303,"nodeType":"VariableDeclarationStatement","src":"30182:14:161"},{"assignments":[78305],"declarations":[{"constant":false,"id":78305,"mutability":"mutable","name":"topic4","nameLocation":"30214:6:161","nodeType":"VariableDeclaration","scope":78334,"src":"30206:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30206:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78306,"nodeType":"VariableDeclarationStatement","src":"30206:14:161"},{"AST":{"nativeSrc":"30255:191:161","nodeType":"YulBlock","src":"30255:191:161","statements":[{"nativeSrc":"30269:47:161","nodeType":"YulAssignment","src":"30269:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30296:14:161","nodeType":"YulIdentifier","src":"30296:14:161"},{"kind":"number","nativeSrc":"30312:2:161","nodeType":"YulLiteral","src":"30312:2:161","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"30292:3:161","nodeType":"YulIdentifier","src":"30292:3:161"},"nativeSrc":"30292:23:161","nodeType":"YulFunctionCall","src":"30292:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30279:12:161","nodeType":"YulIdentifier","src":"30279:12:161"},"nativeSrc":"30279:37:161","nodeType":"YulFunctionCall","src":"30279:37:161"},"variableNames":[{"name":"topic2","nativeSrc":"30269:6:161","nodeType":"YulIdentifier","src":"30269:6:161"}]},{"nativeSrc":"30329:47:161","nodeType":"YulAssignment","src":"30329:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30356:14:161","nodeType":"YulIdentifier","src":"30356:14:161"},{"kind":"number","nativeSrc":"30372:2:161","nodeType":"YulLiteral","src":"30372:2:161","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"30352:3:161","nodeType":"YulIdentifier","src":"30352:3:161"},"nativeSrc":"30352:23:161","nodeType":"YulFunctionCall","src":"30352:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30339:12:161","nodeType":"YulIdentifier","src":"30339:12:161"},"nativeSrc":"30339:37:161","nodeType":"YulFunctionCall","src":"30339:37:161"},"variableNames":[{"name":"topic3","nativeSrc":"30329:6:161","nodeType":"YulIdentifier","src":"30329:6:161"}]},{"nativeSrc":"30389:47:161","nodeType":"YulAssignment","src":"30389:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"30416:14:161","nodeType":"YulIdentifier","src":"30416:14:161"},{"kind":"number","nativeSrc":"30432:2:161","nodeType":"YulLiteral","src":"30432:2:161","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"30412:3:161","nodeType":"YulIdentifier","src":"30412:3:161"},"nativeSrc":"30412:23:161","nodeType":"YulFunctionCall","src":"30412:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"30399:12:161","nodeType":"YulIdentifier","src":"30399:12:161"},"nativeSrc":"30399:37:161","nodeType":"YulFunctionCall","src":"30399:37:161"},"variableNames":[{"name":"topic4","nativeSrc":"30389:6:161","nodeType":"YulIdentifier","src":"30389:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78135,"isOffset":true,"isSlot":false,"src":"30296:14:161","suffix":"offset","valueSize":1},{"declaration":78135,"isOffset":true,"isSlot":false,"src":"30356:14:161","suffix":"offset","valueSize":1},{"declaration":78135,"isOffset":true,"isSlot":false,"src":"30416:14:161","suffix":"offset","valueSize":1},{"declaration":78299,"isOffset":false,"isSlot":false,"src":"30269:6:161","valueSize":1},{"declaration":78302,"isOffset":false,"isSlot":false,"src":"30329:6:161","valueSize":1},{"declaration":78305,"isOffset":false,"isSlot":false,"src":"30389:6:161","valueSize":1}],"flags":["memory-safe"],"id":78307,"nodeType":"InlineAssembly","src":"30230:216:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78308,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78160,"src":"30460:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":78309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30476:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"30460:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78313,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78160,"src":"30596:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":78314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30612:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"30596:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78318,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78160,"src":"30740:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":78319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30756:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"30740:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78323,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78160,"src":"30892:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":78324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30908:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"30892:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78328,"nodeType":"IfStatement","src":"30888:154:161","trueBody":{"id":78327,"nodeType":"Block","src":"30911:131:161","statements":[{"AST":{"nativeSrc":"30950:82:161","nodeType":"YulBlock","src":"30950:82:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30973:6:161","nodeType":"YulIdentifier","src":"30973:6:161"},{"name":"size","nativeSrc":"30981:4:161","nodeType":"YulIdentifier","src":"30981:4:161"},{"name":"topic1","nativeSrc":"30987:6:161","nodeType":"YulIdentifier","src":"30987:6:161"},{"name":"topic2","nativeSrc":"30995:6:161","nodeType":"YulIdentifier","src":"30995:6:161"},{"name":"topic3","nativeSrc":"31003:6:161","nodeType":"YulIdentifier","src":"31003:6:161"},{"name":"topic4","nativeSrc":"31011:6:161","nodeType":"YulIdentifier","src":"31011:6:161"}],"functionName":{"name":"log4","nativeSrc":"30968:4:161","nodeType":"YulIdentifier","src":"30968:4:161"},"nativeSrc":"30968:50:161","nodeType":"YulFunctionCall","src":"30968:50:161"},"nativeSrc":"30968:50:161","nodeType":"YulExpressionStatement","src":"30968:50:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78290,"isOffset":false,"isSlot":false,"src":"30973:6:161","valueSize":1},{"declaration":78279,"isOffset":false,"isSlot":false,"src":"30981:4:161","valueSize":1},{"declaration":78200,"isOffset":false,"isSlot":false,"src":"30987:6:161","valueSize":1},{"declaration":78299,"isOffset":false,"isSlot":false,"src":"30995:6:161","valueSize":1},{"declaration":78302,"isOffset":false,"isSlot":false,"src":"31003:6:161","valueSize":1},{"declaration":78305,"isOffset":false,"isSlot":false,"src":"31011:6:161","valueSize":1}],"flags":["memory-safe"],"id":78326,"nodeType":"InlineAssembly","src":"30925:107:161"}]}},"id":78329,"nodeType":"IfStatement","src":"30736:306:161","trueBody":{"id":78322,"nodeType":"Block","src":"30759:123:161","statements":[{"AST":{"nativeSrc":"30798:74:161","nodeType":"YulBlock","src":"30798:74:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30821:6:161","nodeType":"YulIdentifier","src":"30821:6:161"},{"name":"size","nativeSrc":"30829:4:161","nodeType":"YulIdentifier","src":"30829:4:161"},{"name":"topic1","nativeSrc":"30835:6:161","nodeType":"YulIdentifier","src":"30835:6:161"},{"name":"topic2","nativeSrc":"30843:6:161","nodeType":"YulIdentifier","src":"30843:6:161"},{"name":"topic3","nativeSrc":"30851:6:161","nodeType":"YulIdentifier","src":"30851:6:161"}],"functionName":{"name":"log3","nativeSrc":"30816:4:161","nodeType":"YulIdentifier","src":"30816:4:161"},"nativeSrc":"30816:42:161","nodeType":"YulFunctionCall","src":"30816:42:161"},"nativeSrc":"30816:42:161","nodeType":"YulExpressionStatement","src":"30816:42:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78290,"isOffset":false,"isSlot":false,"src":"30821:6:161","valueSize":1},{"declaration":78279,"isOffset":false,"isSlot":false,"src":"30829:4:161","valueSize":1},{"declaration":78200,"isOffset":false,"isSlot":false,"src":"30835:6:161","valueSize":1},{"declaration":78299,"isOffset":false,"isSlot":false,"src":"30843:6:161","valueSize":1},{"declaration":78302,"isOffset":false,"isSlot":false,"src":"30851:6:161","valueSize":1}],"flags":["memory-safe"],"id":78321,"nodeType":"InlineAssembly","src":"30773:99:161"}]}},"id":78330,"nodeType":"IfStatement","src":"30592:450:161","trueBody":{"id":78317,"nodeType":"Block","src":"30615:115:161","statements":[{"AST":{"nativeSrc":"30654:66:161","nodeType":"YulBlock","src":"30654:66:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30677:6:161","nodeType":"YulIdentifier","src":"30677:6:161"},{"name":"size","nativeSrc":"30685:4:161","nodeType":"YulIdentifier","src":"30685:4:161"},{"name":"topic1","nativeSrc":"30691:6:161","nodeType":"YulIdentifier","src":"30691:6:161"},{"name":"topic2","nativeSrc":"30699:6:161","nodeType":"YulIdentifier","src":"30699:6:161"}],"functionName":{"name":"log2","nativeSrc":"30672:4:161","nodeType":"YulIdentifier","src":"30672:4:161"},"nativeSrc":"30672:34:161","nodeType":"YulFunctionCall","src":"30672:34:161"},"nativeSrc":"30672:34:161","nodeType":"YulExpressionStatement","src":"30672:34:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78290,"isOffset":false,"isSlot":false,"src":"30677:6:161","valueSize":1},{"declaration":78279,"isOffset":false,"isSlot":false,"src":"30685:4:161","valueSize":1},{"declaration":78200,"isOffset":false,"isSlot":false,"src":"30691:6:161","valueSize":1},{"declaration":78299,"isOffset":false,"isSlot":false,"src":"30699:6:161","valueSize":1}],"flags":["memory-safe"],"id":78316,"nodeType":"InlineAssembly","src":"30629:91:161"}]}},"id":78331,"nodeType":"IfStatement","src":"30456:586:161","trueBody":{"id":78312,"nodeType":"Block","src":"30479:107:161","statements":[{"AST":{"nativeSrc":"30518:58:161","nodeType":"YulBlock","src":"30518:58:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"30541:6:161","nodeType":"YulIdentifier","src":"30541:6:161"},{"name":"size","nativeSrc":"30549:4:161","nodeType":"YulIdentifier","src":"30549:4:161"},{"name":"topic1","nativeSrc":"30555:6:161","nodeType":"YulIdentifier","src":"30555:6:161"}],"functionName":{"name":"log1","nativeSrc":"30536:4:161","nodeType":"YulIdentifier","src":"30536:4:161"},"nativeSrc":"30536:26:161","nodeType":"YulFunctionCall","src":"30536:26:161"},"nativeSrc":"30536:26:161","nodeType":"YulExpressionStatement","src":"30536:26:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78290,"isOffset":false,"isSlot":false,"src":"30541:6:161","valueSize":1},{"declaration":78279,"isOffset":false,"isSlot":false,"src":"30549:4:161","valueSize":1},{"declaration":78200,"isOffset":false,"isSlot":false,"src":"30555:6:161","valueSize":1}],"flags":["memory-safe"],"id":78311,"nodeType":"InlineAssembly","src":"30493:83:161"}]}},{"expression":{"hexValue":"74727565","id":78332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31059:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78133,"id":78333,"nodeType":"Return","src":"31052:11:161"}]},"documentation":{"id":78126,"nodeType":"StructuredDocumentation","src":"24152:3068:161","text":" @dev Tries to parse an event from the Sails framework and emit it in Solidity notation.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n Example of defining Solidity events in WASM contract based on Sails framework:\n ```rust\n #[event]\n #[derive(Clone, Debug, PartialEq, Encode, TypeInfo)]\n #[codec(crate = scale_codec)]\n #[scale_info(crate = scale_info)]\n pub enum CounterEvents {\n Added {\n #[indexed]\n source: ActorId,\n value: u32,\n },\n }\n ```\n User also generates \"Solidity ABI interface\" that allows services like Etherscan to decode events from `Mirror`\n (since we use the ABI interface as \"proxy implementation\"):\n ```solidity\n interface ICounter {\n event Added(address indexed source, uint32 value);\n // ... other events\n }\n ```\n Now let's imagine that the user wants to calculate something in WASM contract and send it to Ethereum as event,\n which will then be emitted by `Mirror` smart contract as showed on services like Etherscan:\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n ```\n All the `emit_eth_event` method in the Sails framework does is call the syscall\n `gcore::msg::send(destination=ETH_EVENT_ADDR, payload, value=0)`, where `payload`\n is encoded in Solidity notation as described below.\n Format in which the Sails framework sends events:\n - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`).\n specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called.\n - `bytes32 topic1` (required)\n should never match our event selectors!\n - `bytes32 topic2` (optional)\n - `bytes32 topic3` (optional)\n - `bytes32 topic4` (optional)\n - `bytes payload` (optional)\n contains encoded data of event in form of `abi.encode(...)`.\n @param _message The message to be parsed and emitted as Solidity event.\n @return isSailsEvent `true` in case of success and `false` in case of error (no matching event found)."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"27234:26:161","parameters":{"id":78130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78129,"mutability":"mutable","name":"_message","nameLocation":"27283:8:161","nodeType":"VariableDeclaration","scope":78335,"src":"27261:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78128,"nodeType":"UserDefinedTypeName","pathNode":{"id":78127,"name":"Gear.Message","nameLocations":["27261:4:161","27266:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83180,"src":"27261:12:161"},"referencedDeclaration":83180,"src":"27261:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"27260:32:161"},"returnParameters":{"id":78133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78132,"mutability":"mutable","name":"isSailsEvent","nameLocation":"27315:12:161","nodeType":"VariableDeclaration","scope":78335,"src":"27310:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78131,"name":"bool","nodeType":"ElementaryTypeName","src":"27310:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27309:19:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78466,"nodeType":"FunctionDefinition","src":"37037:1645:161","nodes":[],"body":{"id":78465,"nodeType":"Block","src":"37104:1578:161","nodes":[],"statements":[{"condition":{"expression":{"id":78342,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37118:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37127:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":83179,"src":"37118:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78463,"nodeType":"Block","src":"38333:343:161","statements":[{"assignments":[78431],"declarations":[{"constant":false,"id":78431,"mutability":"mutable","name":"transferSuccess","nameLocation":"38352:15:161","nodeType":"VariableDeclaration","scope":78463,"src":"38347:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78430,"name":"bool","nodeType":"ElementaryTypeName","src":"38347:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78438,"initialValue":{"arguments":[{"expression":{"id":78433,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38385:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38394:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"38385:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78435,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38407:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38416:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"38407:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78432,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78679,"src":"38370:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38370:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"38347:75:161"},{"condition":{"id":78440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"38440:16:161","subExpression":{"id":78439,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78431,"src":"38441:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78449,"nodeType":"IfStatement","src":"38436:117:161","trueBody":{"id":78448,"nodeType":"Block","src":"38458:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78442,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38501:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38510:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"38501:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78444,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38523:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38532:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"38523:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78441,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"38481:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38481:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78447,"nodeType":"EmitStatement","src":"38476:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":78451,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38578:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38587:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83169,"src":"38578:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":78453,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38605:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"38596:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78455,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38612:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38621:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"38612:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38634:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83215,"src":"38612:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78458,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38638:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38647:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"38638:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38660:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83218,"src":"38638:26:161","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":78450,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74213,"src":"38572:5:161","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":78461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38572:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78462,"nodeType":"EmitStatement","src":"38567:98:161"}]},"id":78464,"nodeType":"IfStatement","src":"37114:1562:161","trueBody":{"id":78429,"nodeType":"Block","src":"37133:1194:161","statements":[{"assignments":[78345],"declarations":[{"constant":false,"id":78345,"mutability":"mutable","name":"isSuccessReply","nameLocation":"37152:14:161","nodeType":"VariableDeclaration","scope":78429,"src":"37147:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78344,"name":"bool","nodeType":"ElementaryTypeName","src":"37147:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78353,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":78352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":78346,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37169:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37178:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"37169:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37191:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83218,"src":"37169:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":78350,"indexExpression":{"hexValue":"30","id":78349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37196:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"37169:29:161","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37202:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37169:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37147:56:161"},{"assignments":[78355],"declarations":[{"constant":false,"id":78355,"mutability":"mutable","name":"payload","nameLocation":"37231:7:161","nodeType":"VariableDeclaration","scope":78429,"src":"37218:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78354,"name":"bytes","nodeType":"ElementaryTypeName","src":"37218:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":78356,"nodeType":"VariableDeclarationStatement","src":"37218:20:161"},{"condition":{"id":78357,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78345,"src":"37257:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78380,"nodeType":"Block","src":"37338:348:161","statements":[{"expression":{"id":78378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78364,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78355,"src":"37508:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":78367,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73742,"src":"37562:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73742_$","typeString":"type(contract ICallbacks)"}},"id":78368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37573:12:161","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73741,"src":"37562:23:161","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":78369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37586:8:161","memberName":"selector","nodeType":"MemberAccess","src":"37562:32:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":78370,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37596:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37605:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83163,"src":"37596:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78372,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37609:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37618:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83169,"src":"37609:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":78374,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37627:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37636:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"37627:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37649:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83218,"src":"37627:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":78365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37518:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37522:18:161","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"37518:22:161","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":78377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37518:153:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"37508:163:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78379,"nodeType":"ExpressionStatement","src":"37508:163:161"}]},"id":78381,"nodeType":"IfStatement","src":"37253:433:161","trueBody":{"id":78363,"nodeType":"Block","src":"37273:59:161","statements":[{"expression":{"id":78361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78358,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78355,"src":"37291:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78359,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37301:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37310:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":83169,"src":"37301:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"37291:26:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":78362,"nodeType":"ExpressionStatement","src":"37291:26:161"}]}},{"assignments":[78383,null],"declarations":[{"constant":false,"id":78383,"mutability":"mutable","name":"success","nameLocation":"37706:7:161","nodeType":"VariableDeclaration","scope":78429,"src":"37701:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78382,"name":"bool","nodeType":"ElementaryTypeName","src":"37701:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78393,"initialValue":{"arguments":[{"id":78391,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78355,"src":"37781:7:161","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":{"expression":{"id":78384,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37718:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37727:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"37718:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37739:4:161","memberName":"call","nodeType":"MemberAccess","src":"37718:25:161","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":78390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":78387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37749:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":78388,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37765:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37774:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"37765:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"37718:62:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37718:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"37700:89:161"},{"condition":{"id":78395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37808:8:161","subExpression":{"id":78394,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78383,"src":"37809:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78428,"nodeType":"IfStatement","src":"37804:513:161","trueBody":{"id":78427,"nodeType":"Block","src":"37818:499:161","statements":[{"assignments":[78397],"declarations":[{"constant":false,"id":78397,"mutability":"mutable","name":"transferSuccess","nameLocation":"37841:15:161","nodeType":"VariableDeclaration","scope":78427,"src":"37836:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78396,"name":"bool","nodeType":"ElementaryTypeName","src":"37836:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78404,"initialValue":{"arguments":[{"expression":{"id":78399,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37874:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37883:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"37874:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78401,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37896:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37905:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"37896:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78398,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78679,"src":"37859:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37859:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"37836:75:161"},{"condition":{"id":78406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"37933:16:161","subExpression":{"id":78405,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78397,"src":"37934:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78415,"nodeType":"IfStatement","src":"37929:125:161","trueBody":{"id":78414,"nodeType":"Block","src":"37951:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78408,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"37998:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38007:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83166,"src":"37998:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78410,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38020:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38029:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"38020:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78407,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74243,"src":"37978:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37978:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78413,"nodeType":"EmitStatement","src":"37973:62:161"}]}},{"documentation":" @dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":78417,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38233:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38242:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"38233:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78419,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38249:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38258:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"38249:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38271:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":83215,"src":"38249:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":78422,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78339,"src":"38275:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":78423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38284:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":83176,"src":"38275:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$83219_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":78424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38297:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":83218,"src":"38275:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":78416,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74222,"src":"38217:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":78425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38217:85:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78426,"nodeType":"EmitStatement","src":"38212:90:161"}]}}]}}]},"documentation":{"id":78336,"nodeType":"StructuredDocumentation","src":"31076:5956:161","text":" @dev Internal function to send reply message.\n Non-zero value always sent since never goes to mailbox.\n Emits `Reply` event if `_message.call = false`.\n If `_message.call = true`, the call will be made to `_message.destination` with\n gas limit of 500_000 to prevent DoS attacks and with `_message.value`.\n The `_message.replyDetails` will also be evaluated to determine the reply's success.\n If `gear_core::message::ReplyCode` is successful, `_message.payload` will be used.\n If unsuccessful, `payload = ICallbacks.onErrorReply(_message.id, _message.payload, _message.replyDetails.code)`\n will be used and the appropriate method on `_message.destination` will be called.\n Function will also always attempt to send `_message.value`. If this fails for some reason,\n the `ReplyTransferFailed` event will be emitted.\n If call fails, then `ReplyCallFailed` event will be emitted.\n User writes WASM smart contract on Sails framework called \"Counter\":\n - https://github.com/gear-foundation/vara-eth-demo/blob/master/app/src/lib.rs\n All the contract method does is return `u32` as result (reply):\n ```rust\n #[service(events = CounterEvents)]\n impl CounterService<'_> {\n #[export]\n pub fn add(&mut self, value: u32) -> u32 {\n let mut data_mut = self.data.borrow_mut();\n data_mut.counter = data_mut.counter.checked_add(value).expect(\"failed to add\");\n let source = Syscall::message_source();\n self.emit_eth_event(CounterEvents::Added { source, value })\n .expect(\"failed to emit eth event\");\n data_mut.counter\n }\n }\n User also generates \"Solidity ABI Interface\" to allow incrementing counter or calling other methods within WASM smart contract.\n Next, we assume user uploads `CounterAbi` smart contract to Ethereum:\n ```solidity\n interface ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId);\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId);\n // ... other methods\n }\n contract CounterAbi is ICounter {\n function init(bool _callReply, uint32 counter) external returns (bytes32 messageId) {}\n function counterAdd(bool _callReply, uint32 value) external returns (bytes32 messageId) {}\n }\n ```\n User also generates \"Solidity Callback Interface\" and implements own `CounterCaller` smart contract,\n which will handle reply hooks in methods starting with `replyOn_`:\n ```solidity\n interface ICounterCallbacks {\n function replyOn_init(bytes32 messageId) external;\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external;\n // ... other methods\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode) external payable;\n }\n contract CounterCaller is ICounterCallbacks {\n ICounter public immutable MIRROR;\n constructor(ICounter _mirror) {\n MIRROR = _mirror;\n }\n modifier onlyMirror() {\n _onlyMirror();\n _;\n }\n function _onlyMirror() internal view {\n require(msg.sender == address(MIRROR));\n }\n // Call `Counter` constructor on our platform\n function init(uint32 counter) external {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.init(true, counter);\n }\n function replyOn_init(bytes32 messageId) external onlyMirror {\n // ...\n }\n // Compute `Counter.add(uint32 value) -> uint32 reply` on our platform\n mapping(bytes32 messageId => bool knownMessage) public counterAddInputs;\n mapping(bytes32 messageId => uint32 output) public counterAddResults;\n function counterAdd(uint32 value) external returns (bytes32 messageId) {\n // `bool _callReply = true`\n bytes32 _messageId = MIRROR.counterAdd(true, value);\n counterAddInputs[_messageId] = true;\n messageId = _messageId;\n }\n function replyOn_counterAdd(bytes32 messageId, uint32 reply) external onlyMirror {\n counterAddResults[messageId] = reply;\n }\n // Handle `Counter` errors on our platform\n event ErrorReply(bytes32 messageId, bytes payload, bytes4 replyCode);\n function onErrorReply(bytes32 messageId, bytes calldata payload, bytes4 replyCode)\n external\n payable\n onlyMirror\n {\n emit ErrorReply(messageId, payload, replyCode);\n }\n }\n ```\n User calls `CounterCaller.counterAdd(uint32 value)`, and the smart contract calls `ICounter.counterAdd(bool _callReply=true, uint32 value)`.\n Result calculated in WASM smart contract on Sails framework in `Counter.add(uint32 value) -> uint32 reply` method will be passed to\n `replyOn_counterAdd(bytes32 messageId, uint32 reply)`.\n @param _message The reply message to be sent."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"37046:17:161","parameters":{"id":78340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78339,"mutability":"mutable","name":"_message","nameLocation":"37086:8:161","nodeType":"VariableDeclaration","scope":78466,"src":"37064:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":78338,"nodeType":"UserDefinedTypeName","pathNode":{"id":78337,"name":"Gear.Message","nameLocations":["37064:4:161","37069:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":83180,"src":"37064:12:161"},"referencedDeclaration":83180,"src":"37064:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$83180_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"37063:32:161"},"returnParameters":{"id":78341,"nodeType":"ParameterList","parameters":[],"src":"37104:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78579,"nodeType":"FunctionDefinition","src":"39220:1028:161","nodes":[],"body":{"id":78578,"nodeType":"Block","src":"39315:933:161","nodes":[],"statements":[{"assignments":[78477],"declarations":[{"constant":false,"id":78477,"mutability":"mutable","name":"claimsLen","nameLocation":"39333:9:161","nodeType":"VariableDeclaration","scope":78578,"src":"39325:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78476,"name":"uint256","nodeType":"ElementaryTypeName","src":"39325:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78480,"initialValue":{"expression":{"id":78478,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78471,"src":"39345:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83289_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39353:6:161","memberName":"length","nodeType":"MemberAccess","src":"39345:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39325:34:161"},{"assignments":[78482],"declarations":[{"constant":false,"id":78482,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"39377:16:161","nodeType":"VariableDeclaration","scope":78578,"src":"39369:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78481,"name":"uint256","nodeType":"ElementaryTypeName","src":"39369:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78486,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78483,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"39396:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":78484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39408:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39396:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39369:41:161"},{"assignments":[78488],"declarations":[{"constant":false,"id":78488,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"39428:18:161","nodeType":"VariableDeclaration","scope":78578,"src":"39420:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78487,"name":"uint256","nodeType":"ElementaryTypeName","src":"39420:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78493,"initialValue":{"arguments":[{"id":78491,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78482,"src":"39465:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78489,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39449:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39456:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"39449:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":78492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39449:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"39420:62:161"},{"assignments":[78495],"declarations":[{"constant":false,"id":78495,"mutability":"mutable","name":"offset","nameLocation":"39500:6:161","nodeType":"VariableDeclaration","scope":78578,"src":"39492:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78494,"name":"uint256","nodeType":"ElementaryTypeName","src":"39492:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78497,"initialValue":{"hexValue":"30","id":78496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39509:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39492:18:161"},{"body":{"id":78569,"nodeType":"Block","src":"39561:588:161","statements":[{"assignments":[78512],"declarations":[{"constant":false,"id":78512,"mutability":"mutable","name":"claim","nameLocation":"39600:5:161","nodeType":"VariableDeclaration","scope":78569,"src":"39575:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":78511,"nodeType":"UserDefinedTypeName","pathNode":{"id":78510,"name":"Gear.ValueClaim","nameLocations":["39575:4:161","39580:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83289,"src":"39575:15:161"},"referencedDeclaration":83289,"src":"39575:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":78516,"initialValue":{"baseExpression":{"id":78513,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78471,"src":"39608:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83289_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":78515,"indexExpression":{"id":78514,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78499,"src":"39616:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39608:10:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"39575:43:161"},{"assignments":[78518],"declarations":[{"constant":false,"id":78518,"mutability":"mutable","name":"claimHash","nameLocation":"39640:9:161","nodeType":"VariableDeclaration","scope":78569,"src":"39632:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39632:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78528,"initialValue":{"arguments":[{"expression":{"id":78521,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"39672:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39678:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83284,"src":"39672:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78523,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"39689:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39695:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83286,"src":"39689:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78525,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"39708:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39714:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83288,"src":"39708:11:161","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":78519,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"39652:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":78520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39657:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":83495,"src":"39652:19:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":78527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39652:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39632:88:161"},{"expression":{"arguments":[{"id":78532,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78488,"src":"39760:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78533,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78495,"src":"39780:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78534,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78518,"src":"39788:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78529,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"39734:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":78531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39741:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"39734:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":78535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39734:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78536,"nodeType":"ExpressionStatement","src":"39734:64:161"},{"id":78541,"nodeType":"UncheckedBlock","src":"39812:55:161","statements":[{"expression":{"id":78539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78537,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78495,"src":"39840:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":78538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39850:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"39840:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78540,"nodeType":"ExpressionStatement","src":"39840:12:161"}]},{"assignments":[78543],"declarations":[{"constant":false,"id":78543,"mutability":"mutable","name":"success","nameLocation":"39886:7:161","nodeType":"VariableDeclaration","scope":78569,"src":"39881:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78542,"name":"bool","nodeType":"ElementaryTypeName","src":"39881:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":78550,"initialValue":{"arguments":[{"expression":{"id":78545,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"39911:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39917:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":83286,"src":"39911:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":78547,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"39930:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39936:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83288,"src":"39930:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78544,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78679,"src":"39896:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":78549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39896:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"39881:61:161"},{"condition":{"id":78551,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78543,"src":"39960:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78567,"nodeType":"Block","src":"40055:84:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78561,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"40095:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40101:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83284,"src":"40095:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78563,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"40112:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40118:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83288,"src":"40112:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78560,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74250,"src":"40078:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40078:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78566,"nodeType":"EmitStatement","src":"40073:51:161"}]},"id":78568,"nodeType":"IfStatement","src":"39956:183:161","trueBody":{"id":78559,"nodeType":"Block","src":"39969:80:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":78553,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"40005:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40011:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":83284,"src":"40005:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78555,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"40022:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":78556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40028:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":83288,"src":"40022:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78552,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"39992:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":78557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39992:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78558,"nodeType":"EmitStatement","src":"39987:47:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78502,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78499,"src":"39541:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78503,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"39545:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39541:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78570,"initializationExpression":{"assignments":[78499],"declarations":[{"constant":false,"id":78499,"mutability":"mutable","name":"i","nameLocation":"39534:1:161","nodeType":"VariableDeclaration","scope":78570,"src":"39526:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78498,"name":"uint256","nodeType":"ElementaryTypeName","src":"39526:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78501,"initialValue":{"hexValue":"30","id":78500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39538:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"39526:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39556:3:161","subExpression":{"id":78505,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78499,"src":"39556:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78507,"nodeType":"ExpressionStatement","src":"39556:3:161"},"nodeType":"ForStatement","src":"39521:628:161"},{"expression":{"arguments":[{"id":78573,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78488,"src":"40201:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":78574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40221:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78575,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78482,"src":"40224:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78571,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"40166:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":78572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40173:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"40166:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":78576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78475,"id":78577,"nodeType":"Return","src":"40159:82:161"}]},"documentation":{"id":78467,"nodeType":"StructuredDocumentation","src":"38787:428:161","text":" @dev Internal function to claim values from messages in mailbox.\n It transfers value to each claim destination and emits appropriate events:\n - `ValueClaimed` event is emitted if transfer is successful\n - `ValueClaimFailed` event is emitted if transfer fails\n @param _claims The array of value claims to be claimed.\n @return claimsHash The hash of the claimed values."},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"39229:12:161","parameters":{"id":78472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78471,"mutability":"mutable","name":"_claims","nameLocation":"39269:7:161","nodeType":"VariableDeclaration","scope":78579,"src":"39242:34:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83289_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":78469,"nodeType":"UserDefinedTypeName","pathNode":{"id":78468,"name":"Gear.ValueClaim","nameLocations":["39242:4:161","39247:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":83289,"src":"39242:15:161"},"referencedDeclaration":83289,"src":"39242:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$83289_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":78470,"nodeType":"ArrayTypeName","src":"39242:17:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$83289_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"39241:36:161"},"returnParameters":{"id":78475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78474,"mutability":"mutable","name":"claimsHash","nameLocation":"39303:10:161","nodeType":"VariableDeclaration","scope":78579,"src":"39295:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39295:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39294:20:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78612,"nodeType":"FunctionDefinition","src":"40514:586:161","nodes":[],"body":{"id":78611,"nodeType":"Block","src":"40578:522:161","nodes":[],"statements":[{"documentation":" @dev Set inheritor.","expression":{"id":78589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78587,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77335,"src":"40643:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"40652:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"40643:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78590,"nodeType":"ExpressionStatement","src":"40643:13:161"},{"expression":{"id":78593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78591,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77338,"src":"40666:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78592,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78582,"src":"40678:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"40666:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78594,"nodeType":"ExpressionStatement","src":"40666:22:161"},{"assignments":[78596,78598],"declarations":[{"constant":false,"id":78596,"mutability":"mutable","name":"value","nameLocation":"40797:5:161","nodeType":"VariableDeclaration","scope":78611,"src":"40789:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78595,"name":"uint128","nodeType":"ElementaryTypeName","src":"40789:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78598,"mutability":"mutable","name":"success","nameLocation":"40809:7:161","nodeType":"VariableDeclaration","scope":78611,"src":"40804:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78597,"name":"bool","nodeType":"ElementaryTypeName","src":"40804:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":" @dev Transfer all available balance to the inheritor.","id":78601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78599,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77973,"src":"40820:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":78600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40820:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"40788:65:161"},{"condition":{"id":78603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"40867:8:161","subExpression":{"id":78602,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78598,"src":"40868:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78610,"nodeType":"IfStatement","src":"40863:231:161","trueBody":{"id":78609,"nodeType":"Block","src":"40877:217:161","statements":[{"documentation":" @dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":78605,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78582,"src":"41065:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78606,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78596,"src":"41077:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78604,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74236,"src":"41028:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":78607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41028:55:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78608,"nodeType":"EmitStatement","src":"41023:60:161"}]}}]},"documentation":{"id":78580,"nodeType":"StructuredDocumentation","src":"40311:198:161","text":" @dev Sets the inheritor address, sets exited flag to `true` and\n transfer all available balance to the inheritor.\n @param _inheritor The address of the inheritor."},"implemented":true,"kind":"function","modifiers":[{"id":78585,"kind":"modifierInvocation","modifierName":{"id":78584,"name":"onlyIfActive","nameLocations":["40565:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":77410,"src":"40565:12:161"},"nodeType":"ModifierInvocation","src":"40565:12:161"}],"name":"_setInheritor","nameLocation":"40523:13:161","parameters":{"id":78583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78582,"mutability":"mutable","name":"_inheritor","nameLocation":"40545:10:161","nodeType":"VariableDeclaration","scope":78612,"src":"40537:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78581,"name":"address","nodeType":"ElementaryTypeName","src":"40537:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40536:20:161"},"returnParameters":{"id":78586,"nodeType":"ParameterList","parameters":[],"src":"40578:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78627,"nodeType":"FunctionDefinition","src":"41203:281:161","nodes":[],"body":{"id":78626,"nodeType":"Block","src":"41257:227:161","nodes":[],"statements":[{"documentation":" @dev Set state hash.","expression":{"id":78620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78618,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77329,"src":"41323:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78619,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78615,"src":"41335:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41323:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78621,"nodeType":"ExpressionStatement","src":"41323:22:161"},{"documentation":" @dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":78623,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77329,"src":"41467:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78622,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"41454:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":78624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41454:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78625,"nodeType":"EmitStatement","src":"41449:28:161"}]},"documentation":{"id":78613,"nodeType":"StructuredDocumentation","src":"41106:92:161","text":" @dev Updates the state hash.\n @param _stateHash The new state hash."},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"41212:16:161","parameters":{"id":78616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78615,"mutability":"mutable","name":"_stateHash","nameLocation":"41237:10:161","nodeType":"VariableDeclaration","scope":78627,"src":"41229:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41229:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41228:20:161"},"returnParameters":{"id":78617,"nodeType":"ParameterList","parameters":[],"src":"41257:0:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78649,"nodeType":"FunctionDefinition","src":"41658:182:161","nodes":[],"body":{"id":78648,"nodeType":"Block","src":"41730:110:161","nodes":[],"statements":[{"assignments":[78637],"declarations":[{"constant":false,"id":78637,"mutability":"mutable","name":"wvaraAddr","nameLocation":"41748:9:161","nodeType":"VariableDeclaration","scope":78648,"src":"41740:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78636,"name":"address","nodeType":"ElementaryTypeName","src":"41740:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78643,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78639,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78630,"src":"41768:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78638,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75008,"src":"41760:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$75008_$","typeString":"type(contract IRouter)"}},"id":78640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41760:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$75008","typeString":"contract IRouter"}},"id":78641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41780:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":74692,"src":"41760:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41760:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"41740:53:161"},{"expression":{"arguments":[{"id":78645,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78637,"src":"41823:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78644,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"41810:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":78646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41810:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"functionReturnParameters":78635,"id":78647,"nodeType":"Return","src":"41803:30:161"}]},"documentation":{"id":78628,"nodeType":"StructuredDocumentation","src":"41526:127:161","text":" @dev Get the `WrappedVara` contract instance.\n @param routerAddr The address of the `Router` contract."},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"41667:6:161","parameters":{"id":78631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78630,"mutability":"mutable","name":"routerAddr","nameLocation":"41682:10:161","nodeType":"VariableDeclaration","scope":78649,"src":"41674:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78629,"name":"address","nodeType":"ElementaryTypeName","src":"41674:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41673:20:161"},"returnParameters":{"id":78635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78649,"src":"41716:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"},"typeName":{"id":78633,"nodeType":"UserDefinedTypeName","pathNode":{"id":78632,"name":"IWrappedVara","nameLocations":["41716:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":75024,"src":"41716:12:161"},"referencedDeclaration":75024,"src":"41716:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"41715:14:161"},"scope":78741,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78679,"nodeType":"FunctionDefinition","src":"42082:253:161","nodes":[],"body":{"id":78678,"nodeType":"Block","src":"42165:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":78661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78659,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78654,"src":"42179:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42188:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42179:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78675,"nodeType":"IfStatement","src":"42175:133:161","trueBody":{"id":78674,"nodeType":"Block","src":"42191:117:161","statements":[{"assignments":[78663,null],"declarations":[{"constant":false,"id":78663,"mutability":"mutable","name":"success","nameLocation":"42211:7:161","nodeType":"VariableDeclaration","scope":78674,"src":"42206:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78662,"name":"bool","nodeType":"ElementaryTypeName","src":"42206:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":78671,"initialValue":{"arguments":[{"hexValue":"","id":78669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42266:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":78664,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78652,"src":"42223:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42235:4:161","memberName":"call","nodeType":"MemberAccess","src":"42223:16:161","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":78668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":78666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42245:5:161","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":78667,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78654,"src":"42259:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"42223:42:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":78670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42223:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"42205:64:161"},{"expression":{"id":78672,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78663,"src":"42290:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78658,"id":78673,"nodeType":"Return","src":"42283:14:161"}]}},{"expression":{"hexValue":"74727565","id":78676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"42324:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78658,"id":78677,"nodeType":"Return","src":"42317:11:161"}]},"documentation":{"id":78650,"nodeType":"StructuredDocumentation","src":"41846:231:161","text":" @dev Transfer ETH to destination address.\n It has gas limit of 5_000 to prevent DoS attacks.\n @param destination The address to transfer ETH to.\n @param value The amount of ETH to transfer."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"42091:14:161","parameters":{"id":78655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78652,"mutability":"mutable","name":"destination","nameLocation":"42114:11:161","nodeType":"VariableDeclaration","scope":78679,"src":"42106:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78651,"name":"address","nodeType":"ElementaryTypeName","src":"42106:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78654,"mutability":"mutable","name":"value","nameLocation":"42135:5:161","nodeType":"VariableDeclaration","scope":78679,"src":"42127:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78653,"name":"uint128","nodeType":"ElementaryTypeName","src":"42127:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"42105:36:161"},"returnParameters":{"id":78658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78679,"src":"42159:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78656,"name":"bool","nodeType":"ElementaryTypeName","src":"42159:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42158:6:161"},"scope":78741,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78740,"nodeType":"FunctionDefinition","src":"42636:1106:161","nodes":[],"body":{"id":78739,"nodeType":"Block","src":"42678:1064:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78685,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42692:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42696:5:161","memberName":"value","nodeType":"MemberAccess","src":"42692:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42704:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42692:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78689,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42709:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42713:4:161","memberName":"data","nodeType":"MemberAccess","src":"42709:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42718:6:161","memberName":"length","nodeType":"MemberAccess","src":"42709:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42728:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42709:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42692:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":78715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"42853:8:161","subExpression":{"id":78708,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77344,"src":"42854:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":78710,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42865:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42869:4:161","memberName":"data","nodeType":"MemberAccess","src":"42865:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":78712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42874:6:161","memberName":"length","nodeType":"MemberAccess","src":"42865:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":78713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42884:4:161","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"42865:23:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"42853:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78736,"nodeType":"Block","src":"43683:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78733,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74289,"src":"43704:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43704:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":78735,"nodeType":"RevertStatement","src":"43697:28:161"}]},"id":78737,"nodeType":"IfStatement","src":"42849:887:161","trueBody":{"id":78732,"nodeType":"Block","src":"42890:787:161","statements":[{"assignments":[78718],"declarations":[{"constant":false,"id":78718,"mutability":"mutable","name":"callReply","nameLocation":"43353:9:161","nodeType":"VariableDeclaration","scope":78732,"src":"43345:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78717,"name":"uint256","nodeType":"ElementaryTypeName","src":"43345:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"documentation":" @dev We only allow arbitrary calls to `!isSmall` `Mirror` contracts,\n which are more likely to come from their ABI interfaces.\n The minimum call data length is 0x24 (36 bytes) because:\n - 0x04 (4 bytes) for the function selector [0x00..0x04)\n - 0x20 (32 bytes) for the bool `callReply` [0x04..0x24)","id":78719,"nodeType":"VariableDeclarationStatement","src":"43345:17:161"},{"AST":{"nativeSrc":"43402:63:161","nodeType":"YulBlock","src":"43402:63:161","statements":[{"nativeSrc":"43420:31:161","nodeType":"YulAssignment","src":"43420:31:161","value":{"arguments":[{"kind":"number","nativeSrc":"43446:4:161","nodeType":"YulLiteral","src":"43446:4:161","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"43433:12:161","nodeType":"YulIdentifier","src":"43433:12:161"},"nativeSrc":"43433:18:161","nodeType":"YulFunctionCall","src":"43433:18:161"},"variableNames":[{"name":"callReply","nativeSrc":"43420:9:161","nodeType":"YulIdentifier","src":"43420:9:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78718,"isOffset":false,"isSlot":false,"src":"43420:9:161","valueSize":1}],"flags":["memory-safe"],"id":78720,"nodeType":"InlineAssembly","src":"43377:88:161"},{"assignments":[78722],"declarations":[{"constant":false,"id":78722,"mutability":"mutable","name":"messageId","nameLocation":"43487:9:161","nodeType":"VariableDeclaration","scope":78732,"src":"43479:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43479:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78730,"initialValue":{"arguments":[{"expression":{"id":78724,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"43512:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43516:4:161","memberName":"data","nodeType":"MemberAccess","src":"43512:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78726,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78718,"src":"43522:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43535:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43522:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78723,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77940,"src":"43499:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":78729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43499:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43479:58:161"},{"AST":{"nativeSrc":"43577:90:161","nodeType":"YulBlock","src":"43577:90:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43602:4:161","nodeType":"YulLiteral","src":"43602:4:161","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"43608:9:161","nodeType":"YulIdentifier","src":"43608:9:161"}],"functionName":{"name":"mstore","nativeSrc":"43595:6:161","nodeType":"YulIdentifier","src":"43595:6:161"},"nativeSrc":"43595:23:161","nodeType":"YulFunctionCall","src":"43595:23:161"},"nativeSrc":"43595:23:161","nodeType":"YulExpressionStatement","src":"43595:23:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43642:4:161","nodeType":"YulLiteral","src":"43642:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"43648:4:161","nodeType":"YulLiteral","src":"43648:4:161","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"43635:6:161","nodeType":"YulIdentifier","src":"43635:6:161"},"nativeSrc":"43635:18:161","nodeType":"YulFunctionCall","src":"43635:18:161"},"nativeSrc":"43635:18:161","nodeType":"YulExpressionStatement","src":"43635:18:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":78722,"isOffset":false,"isSlot":false,"src":"43608:9:161","valueSize":1}],"flags":["memory-safe"],"id":78731,"nodeType":"InlineAssembly","src":"43552:115:161"}]}},"id":78738,"nodeType":"IfStatement","src":"42688:1048:161","trueBody":{"id":78707,"nodeType":"Block","src":"42731:112:161","statements":[{"assignments":[78696],"declarations":[{"constant":false,"id":78696,"mutability":"mutable","name":"value","nameLocation":"42753:5:161","nodeType":"VariableDeclaration","scope":78707,"src":"42745:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78695,"name":"uint128","nodeType":"ElementaryTypeName","src":"42745:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":78702,"initialValue":{"arguments":[{"expression":{"id":78699,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"42769:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42773:5:161","memberName":"value","nodeType":"MemberAccess","src":"42769:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"42761:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":78697,"name":"uint128","nodeType":"ElementaryTypeName","src":"42761:7:161","typeDescriptions":{}}},"id":78701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42761:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"42745:34:161"},{"eventCall":{"arguments":[{"id":78704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78696,"src":"42826:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":78703,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"42799:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":78705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42799:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78706,"nodeType":"EmitStatement","src":"42794:38:161"}]}}]},"documentation":{"id":78680,"nodeType":"StructuredDocumentation","src":"42341:290:161","text":" @dev Fallback function for top-up owned balance in native currency (ETH)\n and for sending arbitrary calls to `!isSmall` `Mirror` contracts\n as messages to Sails framework.\n See the description of `Mirror.isSmall` field for details."},"implemented":true,"kind":"fallback","modifiers":[{"id":78683,"kind":"modifierInvocation","modifierName":{"id":78682,"name":"whenNotPaused","nameLocations":["42664:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":77471,"src":"42664:13:161"},"nodeType":"ModifierInvocation","src":"42664:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78681,"nodeType":"ParameterList","parameters":[],"src":"42644:2:161"},"returnParameters":{"id":78684,"nodeType":"ParameterList","parameters":[],"src":"42678:0:161"},"scope":78741,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77318,"name":"IMirror","nameLocations":["2640:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":74395,"src":"2640:7:161"},"id":77319,"nodeType":"InheritanceSpecifier","src":"2640:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","documentation":{"id":77317,"nodeType":"StructuredDocumentation","src":"621:1999:161","text":" @dev Mirror smart contract is responsible for storing the minimal state of programs on our platform\n and transitioning from one state to another by calling `performStateTransition(...)`. It's built\n on actor-model architecture, and in Ethereum, we implement this through \"request-response\" model.\n This means we have two types of events:\n - \"Requested\" events - when user calls one of the methods marked as \"Primary Gear logic\" we emit such an event,\n and all our nodes process it off-chain\n - \"Responded\" events - when we receive response from our nodes and transmit it back to Ethereum.\n All logic called within `performStateTransition(...)` and leading to methods marked as\n \"Private calls related to performStateTransition\" are such events.\n It's important not to confuse these two, as this is how we implement the actor model in Ethereum.\n Mirror economic model has two balances:\n - Owned balance in the native currency (ETH) and is represented as `u128`, since no amount of ETH can exceed `u128::MAX`.\n This balance type can be topped up via `fallback() external payable` and is also used throughout the protocol as `value`.\n - Executable balance in the ERC20 WVARA token is also represented as `u128`, since we also represent it as `u128` on our chain.\n It is used only in the `executableBalanceTopUp(...)` method to top up the executable balance of program on our platform.\n You must top up this balance type, since it allows the program to execute. Developers of WASM smart contracts on the\n Sails framework must develop revenue model for their dApp and top up the program's executable balance so that users\n can use it for free. This is called the \"reverse-gas model\". Developer can also require the presence of `value` in\n the owned balance when calling methods in a WASM smart contract to protect their program from spam."},"fullyImplemented":true,"linearizedBaseContracts":[78741,74395],"name":"Mirror","nameLocation":"2630:6:161","scope":78742,"usedErrors":[74253,74256,74259,74262,74265,74268,74271,74274,74277,74279,74281,74283,74285,74287,74289],"usedEvents":[74141,74154,74165,74172,74177,74182,74193,74202,74213,74222,74229,74236,74243,74250]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":161} \ No newline at end of file diff --git a/ethexe/ethereum/abi/POAMiddleware.json b/ethexe/ethereum/abi/POAMiddleware.json index 854fe421aca..d5cfe62d652 100644 --- a/ethexe/ethereum/abi/POAMiddleware.json +++ b/ethexe/ethereum/abi/POAMiddleware.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"disableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"enableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"executeSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"registerVault","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setValidators","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unregisterVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"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":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","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":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061125a5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161119390816100c78239608051818181610bdd0152610cac0152f35b6001600160401b0319166001600160401b039081175f51602061125a5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;805:6592:164;;7983:34:30;7979:146;;-1:-1:-1;805:6592:164;;;;;;;;1052:13:60;805:6592:164;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;8085:29:30;;805:6592:164;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;805:6592:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;805:6592;4535:25;;;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;2985:17;;805:6592;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2357:1:29;805:6592:164;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;805:6592:164;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;;;;;;;805:6592;4535:25;;805:6592;;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;4535:25;;;;805:6592;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;4301:16:30;805:6592:164;;4724:16:30;;:34;;;;805:6592:164;4803:1:30;4788:16;:50;;;;805:6592:164;4853:13:30;:30;;;;805:6592:164;4849:91:30;;;805:6592:164;4803:1:30;-1:-1:-1;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;7075:37:164;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;-1:-1:-1;;1800:178:73;;;;;;-1:-1:-1;;1800:178:73;;1707:277;7075:37:164;-1:-1:-1;;;;;;;;;;;1106:66:164;;;1806:14;805:6592;;-1:-1:-1;;;;;805:6592:164;;;;;;1795:8;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5064:101:30;;805:6592:164;5064:101:30;-1:-1:-1;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;;;;;;805:6592:164;5140:14:30;805:6592:164;;;4803:1:30;805:6592:164;;5140:14:30;805:6592:164;4977:67:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;4849:91;6496:23;;;805:6592:164;4906:23:30;805:6592:164;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;805:6592:164;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;;;;:::i;:::-;1333:66:164;805:6592;;;;-1:-1:-1;;;;;805:6592:164;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;805:6592:164;;3975:40:29;805:6592:164;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;1333:66;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;-1:-1:-1;805:6592:164;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;6429:44:30;;;;;805:6592:164;6425:105:30;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;6959:1:30;;-1:-1:-1;;;;;805:6592:164;6891:76:30;;:::i;6959:1::-;6654:20;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;2249:17;7075:37;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;7075:37:164:-;1106:66;;-1:-1:-1;;;;;;;;;;;1106:66:164;7284:37;805:6592;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;2303:62:29;;:::i;7284:37:164:-;1333:66;1106;2249:17;;805:6592;2229:17;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;1955:1;805:6592;;6654:20:30;805:6592:164;6429:44:30;1955:1:164;805:6592;;-1:-1:-1;;;;;805:6592:164;6448:25:30;;6429:44;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;4824:6:60;-1:-1:-1;;;;;805:6592:164;4815:4:60;4807:23;4803:145;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;4803:145:60;4578:29;;;805:6592:164;4908:29:60;805:6592:164;;4908:29:60;805:6592:164;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;805:6592:164;4392:4:60;4384:23;;;:120;;;;805:6592:164;4367:251:60;;;2303:62:29;;:::i;:::-;805:6592:164;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5865:52:60;;805:6592:164;;5865:52:60;;;805:6592:164;-1:-1:-1;5861:437:60;;1805:47:53;;;;805:6592:164;6227:60:60;805:6592:164;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;2407:36:53;-1:-1:-1;;2407:36:53;805:6592:164;;2458:15:53;:11;;805:6592:164;4065:25:66;;4107:55;4065:25;;;;;;805:6592:164;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;805:6592:164:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;805:6592:164;6159:70:53;6199:19;;;805:6592:164;6199:19:53;805:6592:164;;6199:19:53;1744:119;1805:47;;;805:6592:164;1805:47:53;805:6592:164;;;;1805:47:53;5955:120:60;6026:34;;;805:6592:164;6026:34:60;805:6592:164;;;;6026:34:60;5865:52;;;;805:6592:164;5865:52:60;;805:6592:164;5865:52:60;;;;;;805:6592:164;5865:52:60;;;:::i;:::-;;;805:6592:164;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;4462:42:60;;;-1:-1:-1;4384:120:60;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;;;;:::o;5424:95::-;805:6592;;-1:-1:-1;;;5487:25:164;;805:6592;5487:25;;;805:6592;;;;;;-1:-1:-1;;;805:6592:164;;;;;;4535:25;3405:215:29;-1:-1:-1;;;;;805:6592:164;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;805:6592:164;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;805:6592:164;;-1:-1:-1;2763:40:29;7082:141:30;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;4437:582:66;;4609:8;;-1:-1:-1;805:6592:164;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;805:6592:164;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;805:6592:164;;;;4933:24:66;805:6592:164;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":3037,"length":32},{"start":3244,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","setValidators(address[])":"9300c926","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"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\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"setValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"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.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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.\"},\"setValidators(address[])\":{\"details\":\"Sets validators for POA middleware.\",\"params\":{\"validators\":\"The addresses of validators to set.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/POAMiddleware.sol\":\"POAMiddleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9\",\"dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75\",\"dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"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":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"pure","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"pure","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"pure","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setValidators"},{"inputs":[],"stateMutability":"pure","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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."},"setValidators(address[])":{"details":"Sets validators for POA middleware.","params":{"validators":"The addresses of validators to set."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"registerOperator()":{"notice":"This function can be called only be operator themselves."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IPOAMiddleware.sol":{"keccak256":"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819","urls":["bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9","dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/POAMiddleware.sol":{"keccak256":"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab","urls":["bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75","dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":79428,"exportedSymbols":{"Gear":[84099],"IMiddleware":[74131],"IPOAMiddleware":[74411],"MapWithTimeData":[84387],"OwnableUpgradeable":[42322],"POAMiddleware":[79427],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:7324:164","nodes":[{"id":78847,"nodeType":"PragmaDirective","src":"74:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":78849,"nodeType":"ImportDirective","src":"100:101:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":78848,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78851,"nodeType":"ImportDirective","src":"202:140:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":78850,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78853,"nodeType":"ImportDirective","src":"343:88:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":78852,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"351:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78855,"nodeType":"ImportDirective","src":"432:80:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":78854,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"440:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78857,"nodeType":"ImportDirective","src":"513:74:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":78856,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"521:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78859,"nodeType":"ImportDirective","src":"588:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":78858,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"596:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78861,"nodeType":"ImportDirective","src":"637:54:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":74412,"symbolAliases":[{"foreign":{"id":78860,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74411,"src":"645:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78863,"nodeType":"ImportDirective","src":"692:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":78862,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"700:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78865,"nodeType":"ImportDirective","src":"737:66:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":79428,"sourceUnit":84388,"symbolAliases":[{"foreign":{"id":78864,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84387,"src":"745:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79427,"nodeType":"ContractDefinition","src":"805:6592:164","nodes":[{"id":78878,"nodeType":"VariableDeclaration","src":"1066:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1091:12:164","scope":79427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1066:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":78877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1106:66:164","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":78881,"nodeType":"VariableDeclaration","src":"1289:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1314:16:164","scope":79427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":78880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1333:66:164","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":78889,"nodeType":"FunctionDefinition","src":"1474:53:164","nodes":[],"body":{"id":78888,"nodeType":"Block","src":"1488:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78885,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1498:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78887,"nodeType":"ExpressionStatement","src":"1498:22:164"}]},"documentation":{"id":78882,"nodeType":"StructuredDocumentation","src":"1406:63:164","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78883,"nodeType":"ParameterList","parameters":[],"src":"1485:2:164"},"returnParameters":{"id":78884,"nodeType":"ParameterList","parameters":[],"src":"1488:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78923,"nodeType":"FunctionDefinition","src":"1533:294:164","nodes":[],"body":{"id":78922,"nodeType":"Block","src":"1601:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78898,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78892,"src":"1626:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1634:5:164","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"1626:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78897,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1611:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78901,"nodeType":"ExpressionStatement","src":"1611:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78902,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"1650:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78904,"nodeType":"ExpressionStatement","src":"1650:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":78906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1710:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":78905,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79402,"src":"1694:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78908,"nodeType":"ExpressionStatement","src":"1694:50:164"},{"assignments":[78911],"declarations":[{"constant":false,"id":78911,"mutability":"mutable","name":"$","nameLocation":"1770:1:164","nodeType":"VariableDeclaration","scope":78922,"src":"1754:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78910,"nodeType":"UserDefinedTypeName","pathNode":{"id":78909,"name":"Storage","nameLocations":["1754:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"1754:7:164"},"referencedDeclaration":73928,"src":"1754:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78914,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78912,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"1774:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1754:30:164"},{"expression":{"id":78920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78915,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78911,"src":"1795:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1797:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"1795:8:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78918,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78892,"src":"1806:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"1806:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1795:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78921,"nodeType":"ExpressionStatement","src":"1795:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":78895,"kind":"modifierInvocation","modifierName":{"id":78894,"name":"initializer","nameLocations":["1589:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"1589:11:164"},"nodeType":"ModifierInvocation","src":"1589:11:164"}],"name":"initialize","nameLocation":"1542:10:164","parameters":{"id":78893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78892,"mutability":"mutable","name":"_params","nameLocation":"1573:7:164","nodeType":"VariableDeclaration","scope":78923,"src":"1553:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":78891,"nodeType":"UserDefinedTypeName","pathNode":{"id":78890,"name":"InitParams","nameLocations":["1553:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"1553:10:164"},"referencedDeclaration":73890,"src":"1553:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"1552:29:164"},"returnParameters":{"id":78896,"nodeType":"ParameterList","parameters":[],"src":"1601:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78965,"nodeType":"FunctionDefinition","src":"1900:373:164","nodes":[],"body":{"id":78964,"nodeType":"Block","src":"1958:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78933,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"1983:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78932,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1968:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78936,"nodeType":"ExpressionStatement","src":"1968:23:164"},{"assignments":[78939],"declarations":[{"constant":false,"id":78939,"mutability":"mutable","name":"oldStorage","nameLocation":"2018:10:164","nodeType":"VariableDeclaration","scope":78964,"src":"2002:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78938,"nodeType":"UserDefinedTypeName","pathNode":{"id":78937,"name":"Storage","nameLocations":["2002:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2002:7:164"},"referencedDeclaration":73928,"src":"2002:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78942,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78940,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2031:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2031:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2002:39:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":78944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2068:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":78943,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79402,"src":"2052:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2052:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78946,"nodeType":"ExpressionStatement","src":"2052:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":78948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2131:36:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""},"value":"middleware.storage.POAMiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""}],"id":78947,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79426,"src":"2112:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2112:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78950,"nodeType":"ExpressionStatement","src":"2112:56:164"},{"assignments":[78953],"declarations":[{"constant":false,"id":78953,"mutability":"mutable","name":"newStorage","nameLocation":"2195:10:164","nodeType":"VariableDeclaration","scope":78964,"src":"2179:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78952,"nodeType":"UserDefinedTypeName","pathNode":{"id":78951,"name":"Storage","nameLocations":["2179:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2179:7:164"},"referencedDeclaration":73928,"src":"2179:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78956,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78954,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2208:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2179:39:164"},{"expression":{"id":78962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78957,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78953,"src":"2229:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2240:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2229:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78960,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78939,"src":"2249:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2249:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2229:37:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78963,"nodeType":"ExpressionStatement","src":"2229:37:164"}]},"documentation":{"id":78924,"nodeType":"StructuredDocumentation","src":"1833:62:164","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78927,"kind":"modifierInvocation","modifierName":{"id":78926,"name":"onlyOwner","nameLocations":["1931:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"1931:9:164"},"nodeType":"ModifierInvocation","src":"1931:9:164"},{"arguments":[{"hexValue":"32","id":78929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1955:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78930,"kind":"modifierInvocation","modifierName":{"id":78928,"name":"reinitializer","nameLocations":["1941:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"1941:13:164"},"nodeType":"ModifierInvocation","src":"1941:16:164"}],"name":"reinitialize","nameLocation":"1909:12:164","parameters":{"id":78925,"nodeType":"ParameterList","parameters":[],"src":"1921:2:164"},"returnParameters":{"id":78931,"nodeType":"ParameterList","parameters":[],"src":"1958:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78975,"nodeType":"FunctionDefinition","src":"2438:84:164","nodes":[],"body":{"id":78974,"nodeType":"Block","src":"2520:2:164","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":78966,"nodeType":"StructuredDocumentation","src":"2279:154:164","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":78972,"kind":"modifierInvocation","modifierName":{"id":78971,"name":"onlyOwner","nameLocations":["2510:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2510:9:164"},"nodeType":"ModifierInvocation","src":"2510:9:164"}],"name":"_authorizeUpgrade","nameLocation":"2447:17:164","overrides":{"id":78970,"nodeType":"OverrideSpecifier","overrides":[],"src":"2501:8:164"},"parameters":{"id":78969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78968,"mutability":"mutable","name":"newImplementation","nameLocation":"2473:17:164","nodeType":"VariableDeclaration","scope":78975,"src":"2465:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78967,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:27:164"},"returnParameters":{"id":78973,"nodeType":"ParameterList","parameters":[],"src":"2520:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78991,"nodeType":"FunctionDefinition","src":"2653:124:164","nodes":[],"body":{"id":78990,"nodeType":"Block","src":"2724:53:164","nodes":[],"statements":[{"expression":{"id":78988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78984,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79354,"src":"2734:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74403_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":78985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2734:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":78986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2748:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74402,"src":"2734:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78987,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78979,"src":"2760:10:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2734:36:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":78989,"nodeType":"ExpressionStatement","src":"2734:36:164"}]},"baseFunctions":[74410],"documentation":{"id":78976,"nodeType":"StructuredDocumentation","src":"2528:120:164","text":" @dev Sets validators for POA middleware.\n @param validators The addresses of validators to set."},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":78982,"kind":"modifierInvocation","modifierName":{"id":78981,"name":"onlyOwner","nameLocations":["2714:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2714:9:164"},"nodeType":"ModifierInvocation","src":"2714:9:164"}],"name":"setValidators","nameLocation":"2662:13:164","parameters":{"id":78980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78979,"mutability":"mutable","name":"validators","nameLocation":"2693:10:164","nodeType":"VariableDeclaration","scope":78991,"src":"2676:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78977,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78978,"nodeType":"ArrayTypeName","src":"2676:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2675:29:164"},"returnParameters":{"id":78983,"nodeType":"ParameterList","parameters":[],"src":"2724:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79006,"nodeType":"FunctionDefinition","src":"2783:129:164","nodes":[],"body":{"id":79005,"nodeType":"Block","src":"2865:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79001,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79354,"src":"2882:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74403_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2882:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74402,"src":"2882:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":79000,"id":79004,"nodeType":"Return","src":"2875:30:164"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2792:14:164","parameters":{"id":78996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2807:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78992,"name":"uint48","nodeType":"ElementaryTypeName","src":"2807:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2815:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2815:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:17:164"},"returnParameters":{"id":79000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79006,"src":"2847:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78997,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78998,"nodeType":"ArrayTypeName","src":"2847:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2846:18:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79016,"nodeType":"FunctionDefinition","src":"2918:91:164","nodes":[],"body":{"id":79015,"nodeType":"Block","src":"2968:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79011,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79341,"src":"2985:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2985:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79013,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2985:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79010,"id":79014,"nodeType":"Return","src":"2978:24:164"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2927:6:164","parameters":{"id":79007,"nodeType":"ParameterList","parameters":[],"src":"2933:2:164"},"returnParameters":{"id":79010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79009,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79016,"src":"2959:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79008,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2958:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79026,"nodeType":"FunctionDefinition","src":"3168:94:164","nodes":[],"body":{"id":79025,"nodeType":"Block","src":"3220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79021,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79024,"nodeType":"ExpressionStatement","src":"3230:25:164"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3177:11:164","parameters":{"id":79017,"nodeType":"ParameterList","parameters":[],"src":"3188:2:164"},"returnParameters":{"id":79020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79026,"src":"3212:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79018,"name":"uint48","nodeType":"ElementaryTypeName","src":"3212:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3211:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79036,"nodeType":"FunctionDefinition","src":"3268:104:164","nodes":[],"body":{"id":79035,"nodeType":"Block","src":"3330:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3347:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79031,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3340:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3340:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79034,"nodeType":"ExpressionStatement","src":"3340:25:164"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3277:21:164","parameters":{"id":79027,"nodeType":"ParameterList","parameters":[],"src":"3298:2:164"},"returnParameters":{"id":79030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79029,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79036,"src":"3322:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79028,"name":"uint48","nodeType":"ElementaryTypeName","src":"3322:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3321:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79046,"nodeType":"FunctionDefinition","src":"3378:102:164","nodes":[],"body":{"id":79045,"nodeType":"Block","src":"3438:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79041,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3448:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3448:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79044,"nodeType":"ExpressionStatement","src":"3448:25:164"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3387:19:164","parameters":{"id":79037,"nodeType":"ParameterList","parameters":[],"src":"3406:2:164"},"returnParameters":{"id":79040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79046,"src":"3430:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79038,"name":"uint48","nodeType":"ElementaryTypeName","src":"3430:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3429:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79056,"nodeType":"FunctionDefinition","src":"3486:99:164","nodes":[],"body":{"id":79055,"nodeType":"Block","src":"3543:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3560:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79051,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3553:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79054,"nodeType":"ExpressionStatement","src":"3553:25:164"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3495:16:164","parameters":{"id":79047,"nodeType":"ParameterList","parameters":[],"src":"3511:2:164"},"returnParameters":{"id":79050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79056,"src":"3535:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79048,"name":"uint48","nodeType":"ElementaryTypeName","src":"3535:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3534:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79066,"nodeType":"FunctionDefinition","src":"3591:98:164","nodes":[],"body":{"id":79065,"nodeType":"Block","src":"3647:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3664:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79061,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3657:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3657:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79064,"nodeType":"ExpressionStatement","src":"3657:25:164"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3600:15:164","parameters":{"id":79057,"nodeType":"ParameterList","parameters":[],"src":"3615:2:164"},"returnParameters":{"id":79060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79066,"src":"3639:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79058,"name":"uint48","nodeType":"ElementaryTypeName","src":"3639:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3638:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79076,"nodeType":"FunctionDefinition","src":"3695:105:164","nodes":[],"body":{"id":79075,"nodeType":"Block","src":"3758:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79071,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3768:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3768:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79074,"nodeType":"ExpressionStatement","src":"3768:25:164"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3704:22:164","parameters":{"id":79067,"nodeType":"ParameterList","parameters":[],"src":"3726:2:164"},"returnParameters":{"id":79070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79076,"src":"3750:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79068,"name":"uint48","nodeType":"ElementaryTypeName","src":"3750:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3749:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79086,"nodeType":"FunctionDefinition","src":"3806:109:164","nodes":[],"body":{"id":79085,"nodeType":"Block","src":"3873:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3890:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79081,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3883:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3883:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79084,"nodeType":"ExpressionStatement","src":"3883:25:164"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3815:25:164","parameters":{"id":79077,"nodeType":"ParameterList","parameters":[],"src":"3840:2:164"},"returnParameters":{"id":79080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79086,"src":"3864:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79078,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3863:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79096,"nodeType":"FunctionDefinition","src":"3921:106:164","nodes":[],"body":{"id":79095,"nodeType":"Block","src":"3985:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4002:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79091,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3995:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79094,"nodeType":"ExpressionStatement","src":"3995:25:164"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3930:23:164","parameters":{"id":79087,"nodeType":"ParameterList","parameters":[],"src":"3953:2:164"},"returnParameters":{"id":79090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79089,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79096,"src":"3977:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79088,"name":"uint64","nodeType":"ElementaryTypeName","src":"3977:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3976:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79106,"nodeType":"FunctionDefinition","src":"4033:102:164","nodes":[],"body":{"id":79105,"nodeType":"Block","src":"4093:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4110:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79101,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4103:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79104,"nodeType":"ExpressionStatement","src":"4103:25:164"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4042:19:164","parameters":{"id":79097,"nodeType":"ParameterList","parameters":[],"src":"4061:2:164"},"returnParameters":{"id":79100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79106,"src":"4085:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79098,"name":"uint64","nodeType":"ElementaryTypeName","src":"4085:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4084:8:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79116,"nodeType":"FunctionDefinition","src":"4141:94:164","nodes":[],"body":{"id":79115,"nodeType":"Block","src":"4193:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4210:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79111,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4203:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4203:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79114,"nodeType":"ExpressionStatement","src":"4203:25:164"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4150:10:164","parameters":{"id":79107,"nodeType":"ParameterList","parameters":[],"src":"4160:2:164"},"returnParameters":{"id":79110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79116,"src":"4184:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79108,"name":"address","nodeType":"ElementaryTypeName","src":"4184:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4183:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79126,"nodeType":"FunctionDefinition","src":"4241:94:164","nodes":[],"body":{"id":79125,"nodeType":"Block","src":"4293:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4310:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79121,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4303:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4303:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79124,"nodeType":"ExpressionStatement","src":"4303:25:164"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4250:10:164","parameters":{"id":79117,"nodeType":"ParameterList","parameters":[],"src":"4260:2:164"},"returnParameters":{"id":79120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79126,"src":"4284:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4284:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4283:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79136,"nodeType":"FunctionDefinition","src":"4341:95:164","nodes":[],"body":{"id":79135,"nodeType":"Block","src":"4394:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4411:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79131,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4404:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4404:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79134,"nodeType":"ExpressionStatement","src":"4404:25:164"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4350:11:164","parameters":{"id":79127,"nodeType":"ParameterList","parameters":[],"src":"4361:2:164"},"returnParameters":{"id":79130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79136,"src":"4385:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79128,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4384:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79147,"nodeType":"FunctionDefinition","src":"4442:125:164","nodes":[],"body":{"id":79146,"nodeType":"Block","src":"4525:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4542:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79142,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4535:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79145,"nodeType":"ExpressionStatement","src":"4535:25:164"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4451:18:164","parameters":{"id":79137,"nodeType":"ParameterList","parameters":[],"src":"4469:2:164"},"returnParameters":{"id":79141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79147,"src":"4493:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":79139,"nodeType":"UserDefinedTypeName","pathNode":{"id":79138,"name":"Gear.SymbioticContracts","nameLocations":["4493:4:164","4498:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":83229,"src":"4493:23:164"},"referencedDeclaration":83229,"src":"4493:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83229_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4492:32:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79155,"nodeType":"FunctionDefinition","src":"4573:81:164","nodes":[],"body":{"id":79154,"nodeType":"Block","src":"4612:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4629:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79150,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4622:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79153,"nodeType":"ExpressionStatement","src":"4622:25:164"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4582:15:164","parameters":{"id":79148,"nodeType":"ParameterList","parameters":[],"src":"4597:2:164"},"returnParameters":{"id":79149,"nodeType":"ParameterList","parameters":[],"src":"4612:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79163,"nodeType":"FunctionDefinition","src":"4660:80:164","nodes":[],"body":{"id":79162,"nodeType":"Block","src":"4698:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4715:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79158,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4708:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79161,"nodeType":"ExpressionStatement","src":"4708:25:164"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4669:14:164","parameters":{"id":79156,"nodeType":"ParameterList","parameters":[],"src":"4683:2:164"},"returnParameters":{"id":79157,"nodeType":"ParameterList","parameters":[],"src":"4698:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79173,"nodeType":"FunctionDefinition","src":"4746:93:164","nodes":[],"body":{"id":79172,"nodeType":"Block","src":"4797:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4814:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79168,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4807:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79171,"nodeType":"ExpressionStatement","src":"4807:25:164"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4755:20:164","parameters":{"id":79166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79165,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79173,"src":"4776:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79164,"name":"address","nodeType":"ElementaryTypeName","src":"4776:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4775:9:164"},"returnParameters":{"id":79167,"nodeType":"ParameterList","parameters":[],"src":"4797:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79183,"nodeType":"FunctionDefinition","src":"4845:92:164","nodes":[],"body":{"id":79182,"nodeType":"Block","src":"4895:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79178,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4905:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4905:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79181,"nodeType":"ExpressionStatement","src":"4905:25:164"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4854:19:164","parameters":{"id":79176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79183,"src":"4874:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79174,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4873:9:164"},"returnParameters":{"id":79177,"nodeType":"ParameterList","parameters":[],"src":"4895:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79191,"nodeType":"FunctionDefinition","src":"4943:82:164","nodes":[],"body":{"id":79190,"nodeType":"Block","src":"4983:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5000:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79186,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4993:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79189,"nodeType":"ExpressionStatement","src":"4993:25:164"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4952:16:164","parameters":{"id":79184,"nodeType":"ParameterList","parameters":[],"src":"4968:2:164"},"returnParameters":{"id":79185,"nodeType":"ParameterList","parameters":[],"src":"4983:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79201,"nodeType":"FunctionDefinition","src":"5031:91:164","nodes":[],"body":{"id":79200,"nodeType":"Block","src":"5080:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5097:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79196,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5090:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5090:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79199,"nodeType":"ExpressionStatement","src":"5090:25:164"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5040:18:164","parameters":{"id":79194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79201,"src":"5059:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79192,"name":"address","nodeType":"ElementaryTypeName","src":"5059:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5058:9:164"},"returnParameters":{"id":79195,"nodeType":"ParameterList","parameters":[],"src":"5080:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79217,"nodeType":"FunctionDefinition","src":"5128:134:164","nodes":[],"body":{"id":79216,"nodeType":"Block","src":"5220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79212,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79215,"nodeType":"ExpressionStatement","src":"5230:25:164"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5137:25:164","parameters":{"id":79208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5163:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79202,"name":"address","nodeType":"ElementaryTypeName","src":"5163:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5172:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79204,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5181:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5162:27:164"},"returnParameters":{"id":79211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79217,"src":"5211:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5211:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5210:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79232,"nodeType":"FunctionDefinition","src":"5268:150:164","nodes":[],"body":{"id":79231,"nodeType":"Block","src":"5376:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5393:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79227,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5386:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5386:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79230,"nodeType":"ExpressionStatement","src":"5386:25:164"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5277:23:164","parameters":{"id":79223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5301:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":79219,"nodeType":"UserDefinedTypeName","pathNode":{"id":79218,"name":"Gear.StakerRewardsCommitment","nameLocations":["5301:4:164","5306:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":83046,"src":"5301:28:164"},"referencedDeclaration":83046,"src":"5301:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":79222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5338:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79221,"name":"uint48","nodeType":"ElementaryTypeName","src":"5338:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5300:45:164"},"returnParameters":{"id":79226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79232,"src":"5367:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5366:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79244,"nodeType":"FunctionDefinition","src":"5424:95:164","nodes":[],"body":{"id":79243,"nodeType":"Block","src":"5477:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5494:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79239,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5487:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79242,"nodeType":"ExpressionStatement","src":"5487:25:164"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5433:13:164","parameters":{"id":79237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79234,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79244,"src":"5447:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79233,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79244,"src":"5456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79235,"name":"address","nodeType":"ElementaryTypeName","src":"5456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5446:18:164"},"returnParameters":{"id":79238,"nodeType":"ParameterList","parameters":[],"src":"5477:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79254,"nodeType":"FunctionDefinition","src":"5525:85:164","nodes":[],"body":{"id":79253,"nodeType":"Block","src":"5568:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5585:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79249,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5578:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79252,"nodeType":"ExpressionStatement","src":"5578:25:164"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5534:12:164","parameters":{"id":79247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79246,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79254,"src":"5547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79245,"name":"address","nodeType":"ElementaryTypeName","src":"5547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5546:9:164"},"returnParameters":{"id":79248,"nodeType":"ParameterList","parameters":[],"src":"5568:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79264,"nodeType":"FunctionDefinition","src":"5616:84:164","nodes":[],"body":{"id":79263,"nodeType":"Block","src":"5658:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79259,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5668:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5668:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79262,"nodeType":"ExpressionStatement","src":"5668:25:164"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5625:11:164","parameters":{"id":79257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79264,"src":"5637:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79255,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5636:9:164"},"returnParameters":{"id":79258,"nodeType":"ParameterList","parameters":[],"src":"5658:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79274,"nodeType":"FunctionDefinition","src":"5706:88:164","nodes":[],"body":{"id":79273,"nodeType":"Block","src":"5752:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5769:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79269,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5762:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79272,"nodeType":"ExpressionStatement","src":"5762:25:164"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5715:15:164","parameters":{"id":79267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79274,"src":"5731:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79265,"name":"address","nodeType":"ElementaryTypeName","src":"5731:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5730:9:164"},"returnParameters":{"id":79268,"nodeType":"ParameterList","parameters":[],"src":"5752:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79288,"nodeType":"FunctionDefinition","src":"5800:117:164","nodes":[],"body":{"id":79287,"nodeType":"Block","src":"5875:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5892:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79283,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5885:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5885:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79286,"nodeType":"ExpressionStatement","src":"5885:25:164"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5809:18:164","parameters":{"id":79279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5828:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79275,"name":"address","nodeType":"ElementaryTypeName","src":"5828:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5837:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79277,"name":"uint48","nodeType":"ElementaryTypeName","src":"5837:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5827:17:164"},"returnParameters":{"id":79282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79288,"src":"5866:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79280,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5865:9:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79304,"nodeType":"FunctionDefinition","src":"5923:142:164","nodes":[],"body":{"id":79303,"nodeType":"Block","src":"6023:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6040:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79299,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6033:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6033:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79302,"nodeType":"ExpressionStatement","src":"6033:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5932:25:164","parameters":{"id":79291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"5958:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79289,"name":"uint48","nodeType":"ElementaryTypeName","src":"5958:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5957:8:164"},"returnParameters":{"id":79298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"5987:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79292,"name":"address","nodeType":"ElementaryTypeName","src":"5987:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79293,"nodeType":"ArrayTypeName","src":"5987:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79304,"src":"6005:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79295,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79296,"nodeType":"ArrayTypeName","src":"6005:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5986:36:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79316,"nodeType":"FunctionDefinition","src":"6071:98:164","nodes":[],"body":{"id":79315,"nodeType":"Block","src":"6127:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6144:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79311,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6137:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79314,"nodeType":"ExpressionStatement","src":"6137:25:164"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6080:12:164","parameters":{"id":79309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79316,"src":"6093:20:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":79306,"nodeType":"UserDefinedTypeName","pathNode":{"id":79305,"name":"SlashData","nameLocations":["6093:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"6093:9:164"},"referencedDeclaration":73942,"src":"6093:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":79307,"nodeType":"ArrayTypeName","src":"6093:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6092:22:164"},"returnParameters":{"id":79310,"nodeType":"ParameterList","parameters":[],"src":"6127:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79328,"nodeType":"FunctionDefinition","src":"6175:104:164","nodes":[],"body":{"id":79327,"nodeType":"Block","src":"6237:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6254:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79323,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6247:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6247:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79326,"nodeType":"ExpressionStatement","src":"6247:25:164"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6184:12:164","parameters":{"id":79321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79328,"src":"6197:26:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":79318,"nodeType":"UserDefinedTypeName","pathNode":{"id":79317,"name":"SlashIdentifier","nameLocations":["6197:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"6197:15:164"},"referencedDeclaration":73947,"src":"6197:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":79319,"nodeType":"ArrayTypeName","src":"6197:17:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6196:28:164"},"returnParameters":{"id":79322,"nodeType":"ParameterList","parameters":[],"src":"6237:0:164"},"scope":79427,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79341,"nodeType":"FunctionDefinition","src":"6285:201:164","nodes":[],"body":{"id":79340,"nodeType":"Block","src":"6355:131:164","nodes":[],"statements":[{"assignments":[79335],"declarations":[{"constant":false,"id":79335,"mutability":"mutable","name":"slot","nameLocation":"6373:4:164","nodeType":"VariableDeclaration","scope":79340,"src":"6365:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6365:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79338,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79336,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79366,"src":"6380:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6380:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6365:32:164"},{"AST":{"nativeSrc":"6433:47:164","nodeType":"YulBlock","src":"6433:47:164","statements":[{"nativeSrc":"6447:23:164","nodeType":"YulAssignment","src":"6447:23:164","value":{"name":"slot","nativeSrc":"6466:4:164","nodeType":"YulIdentifier","src":"6466:4:164"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6447:15:164","nodeType":"YulIdentifier","src":"6447:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79332,"isOffset":false,"isSlot":true,"src":"6447:15:164","suffix":"slot","valueSize":1},{"declaration":79335,"isOffset":false,"isSlot":false,"src":"6466:4:164","valueSize":1}],"flags":["memory-safe"],"id":79339,"nodeType":"InlineAssembly","src":"6408:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6294:8:164","parameters":{"id":79329,"nodeType":"ParameterList","parameters":[],"src":"6302:2:164"},"returnParameters":{"id":79333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79332,"mutability":"mutable","name":"middleware","nameLocation":"6343:10:164","nodeType":"VariableDeclaration","scope":79341,"src":"6327:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79331,"nodeType":"UserDefinedTypeName","pathNode":{"id":79330,"name":"Storage","nameLocations":["6327:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"6327:7:164"},"referencedDeclaration":73928,"src":"6327:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6326:28:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79354,"nodeType":"FunctionDefinition","src":"6492:209:164","nodes":[],"body":{"id":79353,"nodeType":"Block","src":"6568:133:164","nodes":[],"statements":[{"assignments":[79348],"declarations":[{"constant":false,"id":79348,"mutability":"mutable","name":"slot","nameLocation":"6586:4:164","nodeType":"VariableDeclaration","scope":79353,"src":"6578:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6578:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79351,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79349,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79378,"src":"6593:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6593:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6578:35:164"},{"AST":{"nativeSrc":"6648:47:164","nodeType":"YulBlock","src":"6648:47:164","statements":[{"nativeSrc":"6662:23:164","nodeType":"YulAssignment","src":"6662:23:164","value":{"name":"slot","nativeSrc":"6681:4:164","nodeType":"YulIdentifier","src":"6681:4:164"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"6662:15:164","nodeType":"YulIdentifier","src":"6662:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79345,"isOffset":false,"isSlot":true,"src":"6662:15:164","suffix":"slot","valueSize":1},{"declaration":79348,"isOffset":false,"isSlot":false,"src":"6681:4:164","valueSize":1}],"flags":["memory-safe"],"id":79352,"nodeType":"InlineAssembly","src":"6623:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6501:11:164","parameters":{"id":79342,"nodeType":"ParameterList","parameters":[],"src":"6512:2:164"},"returnParameters":{"id":79346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79345,"mutability":"mutable","name":"poaStorage","nameLocation":"6556:10:164","nodeType":"VariableDeclaration","scope":79354,"src":"6537:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":79344,"nodeType":"UserDefinedTypeName","pathNode":{"id":79343,"name":"POAStorage","nameLocations":["6537:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":74403,"src":"6537:10:164"},"referencedDeclaration":74403,"src":"6537:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6536:31:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79366,"nodeType":"FunctionDefinition","src":"6707:128:164","nodes":[],"body":{"id":79365,"nodeType":"Block","src":"6765:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79361,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78878,"src":"6809:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79359,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6782:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6794:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6782:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6823:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6782:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79358,"id":79364,"nodeType":"Return","src":"6775:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6716:15:164","parameters":{"id":79355,"nodeType":"ParameterList","parameters":[],"src":"6731:2:164"},"returnParameters":{"id":79358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79366,"src":"6756:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6756:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6755:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79378,"nodeType":"FunctionDefinition","src":"6841:135:164","nodes":[],"body":{"id":79377,"nodeType":"Block","src":"6902:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79373,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78881,"src":"6946:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79371,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6919:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6931:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6919:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6919:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6964:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6919:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79370,"id":79376,"nodeType":"Return","src":"6912:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6850:18:164","parameters":{"id":79367,"nodeType":"ParameterList","parameters":[],"src":"6868:2:164"},"returnParameters":{"id":79370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79378,"src":"6893:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6893:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6892:9:164"},"scope":79427,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79402,"nodeType":"FunctionDefinition","src":"6982:200:164","nodes":[],"body":{"id":79401,"nodeType":"Block","src":"7050:132:164","nodes":[],"statements":[{"assignments":[79386],"declarations":[{"constant":false,"id":79386,"mutability":"mutable","name":"slot","nameLocation":"7068:4:164","nodeType":"VariableDeclaration","scope":79401,"src":"7060:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7060:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79391,"initialValue":{"arguments":[{"id":79389,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79380,"src":"7102:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79387,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7075:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7090:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7075:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7075:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7060:52:164"},{"expression":{"id":79399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79395,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78878,"src":"7149:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79392,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7122:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7134:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7122:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7122:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7163:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7122:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79398,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79386,"src":"7171:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7122:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79400,"nodeType":"ExpressionStatement","src":"7122:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79383,"kind":"modifierInvocation","modifierName":{"id":79382,"name":"onlyOwner","nameLocations":["7040:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7040:9:164"},"nodeType":"ModifierInvocation","src":"7040:9:164"}],"name":"_setStorageSlot","nameLocation":"6991:15:164","parameters":{"id":79381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79380,"mutability":"mutable","name":"namespace","nameLocation":"7021:9:164","nodeType":"VariableDeclaration","scope":79402,"src":"7007:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79379,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7006:25:164"},"returnParameters":{"id":79384,"nodeType":"ParameterList","parameters":[],"src":"7050:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79426,"nodeType":"FunctionDefinition","src":"7188:207:164","nodes":[],"body":{"id":79425,"nodeType":"Block","src":"7259:136:164","nodes":[],"statements":[{"assignments":[79410],"declarations":[{"constant":false,"id":79410,"mutability":"mutable","name":"slot","nameLocation":"7277:4:164","nodeType":"VariableDeclaration","scope":79425,"src":"7269:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7269:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79415,"initialValue":{"arguments":[{"id":79413,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79404,"src":"7311:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79411,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7284:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7299:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7284:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7284:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7269:52:164"},{"expression":{"id":79423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79419,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78881,"src":"7358:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79416,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7331:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7343:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7331:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7331:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7376:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7331:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79422,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79410,"src":"7384:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7331:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79424,"nodeType":"ExpressionStatement","src":"7331:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79407,"kind":"modifierInvocation","modifierName":{"id":79406,"name":"onlyOwner","nameLocations":["7249:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7249:9:164"},"nodeType":"ModifierInvocation","src":"7249:9:164"}],"name":"_setPoaStorageSlot","nameLocation":"7197:18:164","parameters":{"id":79405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79404,"mutability":"mutable","name":"namespace","nameLocation":"7230:9:164","nodeType":"VariableDeclaration","scope":79426,"src":"7216:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79403,"name":"string","nodeType":"ElementaryTypeName","src":"7216:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7215:25:164"},"returnParameters":{"id":79408,"nodeType":"ParameterList","parameters":[],"src":"7259:0:164"},"scope":79427,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":78866,"name":"IMiddleware","nameLocations":["835:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"835:11:164"},"id":78867,"nodeType":"InheritanceSpecifier","src":"835:11:164"},{"baseName":{"id":78868,"name":"IPOAMiddleware","nameLocations":["852:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":74411,"src":"852:14:164"},"id":78869,"nodeType":"InheritanceSpecifier","src":"852:14:164"},{"baseName":{"id":78870,"name":"OwnableUpgradeable","nameLocations":["872:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"872:18:164"},"id":78871,"nodeType":"InheritanceSpecifier","src":"872:18:164"},{"baseName":{"id":78872,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["896:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"896:35:164"},"id":78873,"nodeType":"InheritanceSpecifier","src":"896:35:164"},{"baseName":{"id":78874,"name":"UUPSUpgradeable","nameLocations":["937:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"937:15:164"},"id":78875,"nodeType":"InheritanceSpecifier","src":"937:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79427,46243,44833,43943,42322,43484,42590,74411,74131],"name":"POAMiddleware","nameLocation":"814:13:164","scope":79428,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":164} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"disableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"enableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"executeSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"registerVault","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setValidators","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unregisterVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"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":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","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":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061125a5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161119390816100c78239608051818181610bdd0152610cac0152f35b6001600160401b0319166001600160401b039081175f51602061125a5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;805:6592:164;;7983:34:30;7979:146;;-1:-1:-1;805:6592:164;;;;;;;;1052:13:60;805:6592:164;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;8085:29:30;;805:6592:164;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;805:6592:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"805:6592:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;805:6592;4535:25;;;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;2985:17;;805:6592;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2357:1:29;805:6592:164;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;805:6592:164;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4535:25;;;;;;;805:6592;4535:25;;805:6592;;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;4535:25;;;;805:6592;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;4301:16:30;805:6592:164;;4724:16:30;;:34;;;;805:6592:164;4803:1:30;4788:16;:50;;;;805:6592:164;4853:13:30;:30;;;;805:6592:164;4849:91:30;;;805:6592:164;4803:1:30;-1:-1:-1;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;7075:37:164;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;-1:-1:-1;;1800:178:73;;;;;;-1:-1:-1;;1800:178:73;;1707:277;7075:37:164;-1:-1:-1;;;;;;;;;;;1106:66:164;;;1806:14;805:6592;;-1:-1:-1;;;;;805:6592:164;;;;;;1795:8;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5064:101:30;;805:6592:164;5064:101:30;-1:-1:-1;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;;;;;;805:6592:164;5140:14:30;805:6592:164;;;4803:1:30;805:6592:164;;5140:14:30;805:6592:164;4977:67:30;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;4977:67:30;;4849:91;6496:23;;;805:6592:164;4906:23:30;805:6592:164;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;805:6592:164;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;;;;:::i;:::-;1333:66:164;805:6592;;;;-1:-1:-1;;;;;805:6592:164;;;;-1:-1:-1;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;805:6592:164;;3975:40:29;805:6592:164;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;1333:66;805:6592;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;-1:-1:-1;805:6592:164;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;;;6429:44:30;;;;;805:6592:164;6425:105:30;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;6959:1:30;;-1:-1:-1;;;;;805:6592:164;6891:76:30;;:::i;6959:1::-;6654:20;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;2249:17;7075:37;805:6592;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;7075:37:164:-;1106:66;;-1:-1:-1;;;;;;;;;;;1106:66:164;7284:37;805:6592;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;805:6592:164;;;;2303:62:29;;:::i;7284:37:164:-;1333:66;1106;2249:17;;805:6592;2229:17;;805:6592;;-1:-1:-1;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;805:6592:164;;;;1955:1;805:6592;;6654:20:30;805:6592:164;6429:44:30;1955:1:164;805:6592;;-1:-1:-1;;;;;805:6592:164;6448:25:30;;6429:44;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;4824:6:60;-1:-1:-1;;;;;805:6592:164;4815:4:60;4807:23;4803:145;;805:6592:164;;;-1:-1:-1;;;;;;;;;;;805:6592:164;;;4803:145:60;4578:29;;;805:6592:164;4908:29:60;805:6592:164;;4908:29:60;805:6592:164;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;805:6592:164;4392:4:60;4384:23;;;:120;;;;805:6592:164;4367:251:60;;;2303:62:29;;:::i;:::-;805:6592:164;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;5865:52:60;;805:6592:164;;5865:52:60;;;805:6592:164;-1:-1:-1;5861:437:60;;1805:47:53;;;;805:6592:164;6227:60:60;805:6592:164;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;2407:36:53;-1:-1:-1;;2407:36:53;805:6592:164;;2458:15:53;:11;;805:6592:164;4065:25:66;;4107:55;4065:25;;;;;;805:6592:164;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;805:6592:164:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;805:6592:164;6159:70:53;6199:19;;;805:6592:164;6199:19:53;805:6592:164;;6199:19:53;1744:119;1805:47;;;805:6592:164;1805:47:53;805:6592:164;;;;1805:47:53;5955:120:60;6026:34;;;805:6592:164;6026:34:60;805:6592:164;;;;6026:34:60;5865:52;;;;805:6592:164;5865:52:60;;805:6592:164;5865:52:60;;;;;;805:6592:164;5865:52:60;;;:::i;:::-;;;805:6592:164;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;4462:42:60;;;-1:-1:-1;4384:120:60;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;805:6592:164;;;;;;:::o;:::-;;;;;;-1:-1:-1;;805:6592:164;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;805:6592:164;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;-1:-1:-1;;805:6592:164;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;805:6592:164;;;;;;;;;:::o;5424:95::-;805:6592;;-1:-1:-1;;;5487:25:164;;805:6592;5487:25;;;805:6592;;;;;;-1:-1:-1;;;805:6592:164;;;;;;4535:25;3405:215:29;-1:-1:-1;;;;;805:6592:164;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;805:6592:164;;-1:-1:-1;;;;;;805:6592:164;;;;;;;-1:-1:-1;;;;;805:6592:164;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;805:6592:164;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;805:6592:164;-1:-1:-1;;;;;805:6592:164;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;805:6592:164;;-1:-1:-1;2763:40:29;7082:141:30;805:6592:164;-1:-1:-1;;;;;;;;;;;805:6592:164;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;4437:582:66;;4609:8;;-1:-1:-1;805:6592:164;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;805:6592:164;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;805:6592:164;;;;4933:24:66;805:6592:164;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":3037,"length":32},{"start":3244,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","setValidators(address[])":"9300c926","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"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\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"setValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"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.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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.\"},\"setValidators(address[])\":{\"details\":\"Sets validators for POA middleware.\",\"params\":{\"validators\":\"The addresses of validators to set.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/POAMiddleware.sol\":\"POAMiddleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9\",\"dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009\",\"dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75\",\"dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded\",\"dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48\",\"dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"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":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"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":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"pure","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"pure","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"pure","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setValidators"},{"inputs":[],"stateMutability":"pure","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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."},"setValidators(address[])":{"details":"Sets validators for POA middleware.","params":{"validators":"The addresses of validators to set."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"registerOperator()":{"notice":"This function can be called only be operator themselves."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IPOAMiddleware.sol":{"keccak256":"0xb19dc08506f6ab2bfff299612ad74193309387a992bef197f153bfedb0483819","urls":["bzz-raw://d103acee55668c5f0d5e9c3ebdf6ef4adef5947b971b5701133239f05f80d3e9","dweb:/ipfs/QmfV4FMQwcQHbMZ33nqR1V9JzECzUaLpiq8mWdRPiaQbrN"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc","urls":["bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009","dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/POAMiddleware.sol":{"keccak256":"0x9e795d47b231857445d3f283f7f8dc73bc93df8e9c67a567c29eb5c2d41261ab","urls":["bzz-raw://6d3c70e2b2c5f0610cf83b4994e8fb0fe00a24504e8160db14e69f847996cf75","dweb:/ipfs/QmWU5neTMaxrHu1vSBxSqBg7CqF2VhuNvHdyX1ZZEdqBV7"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45","urls":["bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded","dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x148d89a649d99a4efe80933fcfa86e540e5f27705fa0eab42695bad17eb2da1e","urls":["bzz-raw://cb532cd5b1f724d8029503ddb9dd7f16498ffca5ec0cec3c11f255a0e8a06e48","dweb:/ipfs/QmbPXDuSr9EXjdX3cUkycrEdsjQP7Pj9Zbo51dQprgJ323"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":79446,"exportedSymbols":{"Gear":[84181],"IMiddleware":[74131],"IPOAMiddleware":[74411],"MapWithTimeData":[84469],"OwnableUpgradeable":[42322],"POAMiddleware":[79445],"ReentrancyGuardTransientUpgradeable":[43943],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:7324:164","nodes":[{"id":78865,"nodeType":"PragmaDirective","src":"74:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":78867,"nodeType":"ImportDirective","src":"100:101:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":78866,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78869,"nodeType":"ImportDirective","src":"202:140:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":78868,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"215:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78871,"nodeType":"ImportDirective","src":"343:88:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":78870,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"351:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78873,"nodeType":"ImportDirective","src":"432:80:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":78872,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"440:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78875,"nodeType":"ImportDirective","src":"513:74:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":78874,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"521:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78877,"nodeType":"ImportDirective","src":"588:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":78876,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"596:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78879,"nodeType":"ImportDirective","src":"637:54:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":74412,"symbolAliases":[{"foreign":{"id":78878,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74411,"src":"645:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78881,"nodeType":"ImportDirective","src":"692:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":84182,"symbolAliases":[{"foreign":{"id":78880,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"700:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78883,"nodeType":"ImportDirective","src":"737:66:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":79446,"sourceUnit":84470,"symbolAliases":[{"foreign":{"id":78882,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84469,"src":"745:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79445,"nodeType":"ContractDefinition","src":"805:6592:164","nodes":[{"id":78896,"nodeType":"VariableDeclaration","src":"1066:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1091:12:164","scope":79445,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1066:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":78895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1106:66:164","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":78899,"nodeType":"VariableDeclaration","src":"1289:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1314:16:164","scope":79445,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":78898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1333:66:164","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":78907,"nodeType":"FunctionDefinition","src":"1474:53:164","nodes":[],"body":{"id":78906,"nodeType":"Block","src":"1488:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78903,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1498:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78905,"nodeType":"ExpressionStatement","src":"1498:22:164"}]},"documentation":{"id":78900,"nodeType":"StructuredDocumentation","src":"1406:63:164","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78901,"nodeType":"ParameterList","parameters":[],"src":"1485:2:164"},"returnParameters":{"id":78902,"nodeType":"ParameterList","parameters":[],"src":"1488:0:164"},"scope":79445,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78941,"nodeType":"FunctionDefinition","src":"1533:294:164","nodes":[],"body":{"id":78940,"nodeType":"Block","src":"1601:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":78916,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78910,"src":"1626:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1634:5:164","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73862,"src":"1626:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78915,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1611:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1611:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78919,"nodeType":"ExpressionStatement","src":"1611:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78920,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"1650:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78922,"nodeType":"ExpressionStatement","src":"1650:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":78924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1710:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":78923,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79420,"src":"1694:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1694:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78926,"nodeType":"ExpressionStatement","src":"1694:50:164"},{"assignments":[78929],"declarations":[{"constant":false,"id":78929,"mutability":"mutable","name":"$","nameLocation":"1770:1:164","nodeType":"VariableDeclaration","scope":78940,"src":"1754:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78928,"nodeType":"UserDefinedTypeName","pathNode":{"id":78927,"name":"Storage","nameLocations":["1754:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"1754:7:164"},"referencedDeclaration":73928,"src":"1754:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78932,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78930,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79359,"src":"1774:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1754:30:164"},{"expression":{"id":78938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78933,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78929,"src":"1795:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1797:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"1795:8:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78936,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78910,"src":"1806:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":78937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73886,"src":"1806:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1795:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78939,"nodeType":"ExpressionStatement","src":"1795:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":78913,"kind":"modifierInvocation","modifierName":{"id":78912,"name":"initializer","nameLocations":["1589:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"1589:11:164"},"nodeType":"ModifierInvocation","src":"1589:11:164"}],"name":"initialize","nameLocation":"1542:10:164","parameters":{"id":78911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78910,"mutability":"mutable","name":"_params","nameLocation":"1573:7:164","nodeType":"VariableDeclaration","scope":78941,"src":"1553:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":78909,"nodeType":"UserDefinedTypeName","pathNode":{"id":78908,"name":"InitParams","nameLocations":["1553:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73890,"src":"1553:10:164"},"referencedDeclaration":73890,"src":"1553:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73890_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"1552:29:164"},"returnParameters":{"id":78914,"nodeType":"ParameterList","parameters":[],"src":"1601:0:164"},"scope":79445,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78983,"nodeType":"FunctionDefinition","src":"1900:373:164","nodes":[],"body":{"id":78982,"nodeType":"Block","src":"1958:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78951,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"1983:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78950,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"1968:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1968:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78954,"nodeType":"ExpressionStatement","src":"1968:23:164"},{"assignments":[78957],"declarations":[{"constant":false,"id":78957,"mutability":"mutable","name":"oldStorage","nameLocation":"2018:10:164","nodeType":"VariableDeclaration","scope":78982,"src":"2002:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78956,"nodeType":"UserDefinedTypeName","pathNode":{"id":78955,"name":"Storage","nameLocations":["2002:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2002:7:164"},"referencedDeclaration":73928,"src":"2002:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78960,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78958,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79359,"src":"2031:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2031:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2002:39:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":78962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2068:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":78961,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79420,"src":"2052:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2052:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78964,"nodeType":"ExpressionStatement","src":"2052:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":78966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2131:36:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""},"value":"middleware.storage.POAMiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""}],"id":78965,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79444,"src":"2112:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2112:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78968,"nodeType":"ExpressionStatement","src":"2112:56:164"},{"assignments":[78971],"declarations":[{"constant":false,"id":78971,"mutability":"mutable","name":"newStorage","nameLocation":"2195:10:164","nodeType":"VariableDeclaration","scope":78982,"src":"2179:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78970,"nodeType":"UserDefinedTypeName","pathNode":{"id":78969,"name":"Storage","nameLocations":["2179:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"2179:7:164"},"referencedDeclaration":73928,"src":"2179:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":78974,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78972,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79359,"src":"2208:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2179:39:164"},{"expression":{"id":78980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78975,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78971,"src":"2229:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2240:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2229:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78978,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78957,"src":"2249:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2260:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2249:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2229:37:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78981,"nodeType":"ExpressionStatement","src":"2229:37:164"}]},"documentation":{"id":78942,"nodeType":"StructuredDocumentation","src":"1833:62:164","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78945,"kind":"modifierInvocation","modifierName":{"id":78944,"name":"onlyOwner","nameLocations":["1931:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"1931:9:164"},"nodeType":"ModifierInvocation","src":"1931:9:164"},{"arguments":[{"hexValue":"32","id":78947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1955:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78948,"kind":"modifierInvocation","modifierName":{"id":78946,"name":"reinitializer","nameLocations":["1941:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"1941:13:164"},"nodeType":"ModifierInvocation","src":"1941:16:164"}],"name":"reinitialize","nameLocation":"1909:12:164","parameters":{"id":78943,"nodeType":"ParameterList","parameters":[],"src":"1921:2:164"},"returnParameters":{"id":78949,"nodeType":"ParameterList","parameters":[],"src":"1958:0:164"},"scope":79445,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78993,"nodeType":"FunctionDefinition","src":"2438:84:164","nodes":[],"body":{"id":78992,"nodeType":"Block","src":"2520:2:164","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":78984,"nodeType":"StructuredDocumentation","src":"2279:154:164","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":78990,"kind":"modifierInvocation","modifierName":{"id":78989,"name":"onlyOwner","nameLocations":["2510:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2510:9:164"},"nodeType":"ModifierInvocation","src":"2510:9:164"}],"name":"_authorizeUpgrade","nameLocation":"2447:17:164","overrides":{"id":78988,"nodeType":"OverrideSpecifier","overrides":[],"src":"2501:8:164"},"parameters":{"id":78987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78986,"mutability":"mutable","name":"newImplementation","nameLocation":"2473:17:164","nodeType":"VariableDeclaration","scope":78993,"src":"2465:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78985,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:27:164"},"returnParameters":{"id":78991,"nodeType":"ParameterList","parameters":[],"src":"2520:0:164"},"scope":79445,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79009,"nodeType":"FunctionDefinition","src":"2653:124:164","nodes":[],"body":{"id":79008,"nodeType":"Block","src":"2724:53:164","nodes":[],"statements":[{"expression":{"id":79006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79002,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79372,"src":"2734:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74403_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2734:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2748:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74402,"src":"2734:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79005,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78997,"src":"2760:10:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"2734:36:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79007,"nodeType":"ExpressionStatement","src":"2734:36:164"}]},"baseFunctions":[74410],"documentation":{"id":78994,"nodeType":"StructuredDocumentation","src":"2528:120:164","text":" @dev Sets validators for POA middleware.\n @param validators The addresses of validators to set."},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":79000,"kind":"modifierInvocation","modifierName":{"id":78999,"name":"onlyOwner","nameLocations":["2714:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2714:9:164"},"nodeType":"ModifierInvocation","src":"2714:9:164"}],"name":"setValidators","nameLocation":"2662:13:164","parameters":{"id":78998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78997,"mutability":"mutable","name":"validators","nameLocation":"2693:10:164","nodeType":"VariableDeclaration","scope":79009,"src":"2676:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78995,"name":"address","nodeType":"ElementaryTypeName","src":"2676:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78996,"nodeType":"ArrayTypeName","src":"2676:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2675:29:164"},"returnParameters":{"id":79001,"nodeType":"ParameterList","parameters":[],"src":"2724:0:164"},"scope":79445,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79024,"nodeType":"FunctionDefinition","src":"2783:129:164","nodes":[],"body":{"id":79023,"nodeType":"Block","src":"2865:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79019,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79372,"src":"2882:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$74403_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":79020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2882:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":79021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2896:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":74402,"src":"2882:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":79018,"id":79022,"nodeType":"Return","src":"2875:30:164"}]},"baseFunctions":[74039],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"2792:14:164","parameters":{"id":79014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79024,"src":"2807:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79010,"name":"uint48","nodeType":"ElementaryTypeName","src":"2807:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":79013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79024,"src":"2815:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2815:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2806:17:164"},"returnParameters":{"id":79018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79024,"src":"2847:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79015,"name":"address","nodeType":"ElementaryTypeName","src":"2847:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79016,"nodeType":"ArrayTypeName","src":"2847:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2846:18:164"},"scope":79445,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79034,"nodeType":"FunctionDefinition","src":"2918:91:164","nodes":[],"body":{"id":79033,"nodeType":"Block","src":"2968:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79029,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79359,"src":"2985:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73928_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":79030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2985:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":79031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2996:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73917,"src":"2985:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79028,"id":79032,"nodeType":"Return","src":"2978:24:164"}]},"baseFunctions":[74012],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"2927:6:164","parameters":{"id":79025,"nodeType":"ParameterList","parameters":[],"src":"2933:2:164"},"returnParameters":{"id":79028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79027,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79034,"src":"2959:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79026,"name":"address","nodeType":"ElementaryTypeName","src":"2959:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2958:9:164"},"scope":79445,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79044,"nodeType":"FunctionDefinition","src":"3168:94:164","nodes":[],"body":{"id":79043,"nodeType":"Block","src":"3220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79039,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79042,"nodeType":"ExpressionStatement","src":"3230:25:164"}]},"baseFunctions":[73952],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3177:11:164","parameters":{"id":79035,"nodeType":"ParameterList","parameters":[],"src":"3188:2:164"},"returnParameters":{"id":79038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79037,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79044,"src":"3212:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79036,"name":"uint48","nodeType":"ElementaryTypeName","src":"3212:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3211:8:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79054,"nodeType":"FunctionDefinition","src":"3268:104:164","nodes":[],"body":{"id":79053,"nodeType":"Block","src":"3330:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3347:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79049,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3340:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3340:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79052,"nodeType":"ExpressionStatement","src":"3340:25:164"}]},"baseFunctions":[73957],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3277:21:164","parameters":{"id":79045,"nodeType":"ParameterList","parameters":[],"src":"3298:2:164"},"returnParameters":{"id":79048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79054,"src":"3322:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79046,"name":"uint48","nodeType":"ElementaryTypeName","src":"3322:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3321:8:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79064,"nodeType":"FunctionDefinition","src":"3378:102:164","nodes":[],"body":{"id":79063,"nodeType":"Block","src":"3438:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79059,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3448:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3448:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79062,"nodeType":"ExpressionStatement","src":"3448:25:164"}]},"baseFunctions":[73962],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3387:19:164","parameters":{"id":79055,"nodeType":"ParameterList","parameters":[],"src":"3406:2:164"},"returnParameters":{"id":79058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79064,"src":"3430:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79056,"name":"uint48","nodeType":"ElementaryTypeName","src":"3430:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3429:8:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79074,"nodeType":"FunctionDefinition","src":"3486:99:164","nodes":[],"body":{"id":79073,"nodeType":"Block","src":"3543:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3560:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79069,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3553:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79072,"nodeType":"ExpressionStatement","src":"3553:25:164"}]},"baseFunctions":[73967],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3495:16:164","parameters":{"id":79065,"nodeType":"ParameterList","parameters":[],"src":"3511:2:164"},"returnParameters":{"id":79068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79074,"src":"3535:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79066,"name":"uint48","nodeType":"ElementaryTypeName","src":"3535:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3534:8:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79084,"nodeType":"FunctionDefinition","src":"3591:98:164","nodes":[],"body":{"id":79083,"nodeType":"Block","src":"3647:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3664:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79079,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3657:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3657:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79082,"nodeType":"ExpressionStatement","src":"3657:25:164"}]},"baseFunctions":[73972],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3600:15:164","parameters":{"id":79075,"nodeType":"ParameterList","parameters":[],"src":"3615:2:164"},"returnParameters":{"id":79078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79084,"src":"3639:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79076,"name":"uint48","nodeType":"ElementaryTypeName","src":"3639:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3638:8:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79094,"nodeType":"FunctionDefinition","src":"3695:105:164","nodes":[],"body":{"id":79093,"nodeType":"Block","src":"3758:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3775:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79089,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3768:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3768:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79092,"nodeType":"ExpressionStatement","src":"3768:25:164"}]},"baseFunctions":[73977],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"3704:22:164","parameters":{"id":79085,"nodeType":"ParameterList","parameters":[],"src":"3726:2:164"},"returnParameters":{"id":79088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79094,"src":"3750:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79086,"name":"uint48","nodeType":"ElementaryTypeName","src":"3750:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3749:8:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79104,"nodeType":"FunctionDefinition","src":"3806:109:164","nodes":[],"body":{"id":79103,"nodeType":"Block","src":"3873:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3890:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79099,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3883:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3883:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79102,"nodeType":"ExpressionStatement","src":"3883:25:164"}]},"baseFunctions":[73982],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"3815:25:164","parameters":{"id":79095,"nodeType":"ParameterList","parameters":[],"src":"3840:2:164"},"returnParameters":{"id":79098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79097,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79104,"src":"3864:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3863:9:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79114,"nodeType":"FunctionDefinition","src":"3921:106:164","nodes":[],"body":{"id":79113,"nodeType":"Block","src":"3985:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4002:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79109,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3995:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79112,"nodeType":"ExpressionStatement","src":"3995:25:164"}]},"baseFunctions":[73987],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"3930:23:164","parameters":{"id":79105,"nodeType":"ParameterList","parameters":[],"src":"3953:2:164"},"returnParameters":{"id":79108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79114,"src":"3977:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79106,"name":"uint64","nodeType":"ElementaryTypeName","src":"3977:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3976:8:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79124,"nodeType":"FunctionDefinition","src":"4033:102:164","nodes":[],"body":{"id":79123,"nodeType":"Block","src":"4093:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4110:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79119,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4103:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4103:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79122,"nodeType":"ExpressionStatement","src":"4103:25:164"}]},"baseFunctions":[73992],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4042:19:164","parameters":{"id":79115,"nodeType":"ParameterList","parameters":[],"src":"4061:2:164"},"returnParameters":{"id":79118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79117,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79124,"src":"4085:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":79116,"name":"uint64","nodeType":"ElementaryTypeName","src":"4085:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4084:8:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79134,"nodeType":"FunctionDefinition","src":"4141:94:164","nodes":[],"body":{"id":79133,"nodeType":"Block","src":"4193:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4210:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79129,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4203:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4203:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79132,"nodeType":"ExpressionStatement","src":"4203:25:164"}]},"baseFunctions":[73997],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4150:10:164","parameters":{"id":79125,"nodeType":"ParameterList","parameters":[],"src":"4160:2:164"},"returnParameters":{"id":79128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79134,"src":"4184:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79126,"name":"address","nodeType":"ElementaryTypeName","src":"4184:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4183:9:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79144,"nodeType":"FunctionDefinition","src":"4241:94:164","nodes":[],"body":{"id":79143,"nodeType":"Block","src":"4293:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4310:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79139,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4303:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4303:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79142,"nodeType":"ExpressionStatement","src":"4303:25:164"}]},"baseFunctions":[74002],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4250:10:164","parameters":{"id":79135,"nodeType":"ParameterList","parameters":[],"src":"4260:2:164"},"returnParameters":{"id":79138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79137,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79144,"src":"4284:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4284:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4283:9:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79154,"nodeType":"FunctionDefinition","src":"4341:95:164","nodes":[],"body":{"id":79153,"nodeType":"Block","src":"4394:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4411:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79149,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4404:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4404:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79152,"nodeType":"ExpressionStatement","src":"4404:25:164"}]},"baseFunctions":[74007],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4350:11:164","parameters":{"id":79145,"nodeType":"ParameterList","parameters":[],"src":"4361:2:164"},"returnParameters":{"id":79148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79154,"src":"4385:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79146,"name":"uint256","nodeType":"ElementaryTypeName","src":"4385:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4384:9:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79165,"nodeType":"FunctionDefinition","src":"4442:125:164","nodes":[],"body":{"id":79164,"nodeType":"Block","src":"4525:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4542:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79160,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4535:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4535:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79163,"nodeType":"ExpressionStatement","src":"4535:25:164"}]},"baseFunctions":[74018],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4451:18:164","parameters":{"id":79155,"nodeType":"ParameterList","parameters":[],"src":"4469:2:164"},"returnParameters":{"id":79159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79158,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79165,"src":"4493:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":79157,"nodeType":"UserDefinedTypeName","pathNode":{"id":79156,"name":"Gear.SymbioticContracts","nameLocations":["4493:4:164","4498:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":83311,"src":"4493:23:164"},"referencedDeclaration":83311,"src":"4493:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$83311_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4492:32:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79173,"nodeType":"FunctionDefinition","src":"4573:81:164","nodes":[],"body":{"id":79172,"nodeType":"Block","src":"4612:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4629:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79168,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4622:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79171,"nodeType":"ExpressionStatement","src":"4622:25:164"}]},"baseFunctions":[74071],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4582:15:164","parameters":{"id":79166,"nodeType":"ParameterList","parameters":[],"src":"4597:2:164"},"returnParameters":{"id":79167,"nodeType":"ParameterList","parameters":[],"src":"4612:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79181,"nodeType":"FunctionDefinition","src":"4660:80:164","nodes":[],"body":{"id":79180,"nodeType":"Block","src":"4698:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4715:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79176,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4708:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79179,"nodeType":"ExpressionStatement","src":"4708:25:164"}]},"baseFunctions":[74075],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"4669:14:164","parameters":{"id":79174,"nodeType":"ParameterList","parameters":[],"src":"4683:2:164"},"returnParameters":{"id":79175,"nodeType":"ParameterList","parameters":[],"src":"4698:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79191,"nodeType":"FunctionDefinition","src":"4746:93:164","nodes":[],"body":{"id":79190,"nodeType":"Block","src":"4797:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4814:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79186,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4807:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79189,"nodeType":"ExpressionStatement","src":"4807:25:164"}]},"baseFunctions":[74023],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"4755:20:164","parameters":{"id":79184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79191,"src":"4776:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79182,"name":"address","nodeType":"ElementaryTypeName","src":"4776:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4775:9:164"},"returnParameters":{"id":79185,"nodeType":"ParameterList","parameters":[],"src":"4797:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79201,"nodeType":"FunctionDefinition","src":"4845:92:164","nodes":[],"body":{"id":79200,"nodeType":"Block","src":"4895:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79196,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4905:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4905:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79199,"nodeType":"ExpressionStatement","src":"4905:25:164"}]},"baseFunctions":[74028],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"4854:19:164","parameters":{"id":79194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79193,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79201,"src":"4874:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79192,"name":"address","nodeType":"ElementaryTypeName","src":"4874:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4873:9:164"},"returnParameters":{"id":79195,"nodeType":"ParameterList","parameters":[],"src":"4895:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79209,"nodeType":"FunctionDefinition","src":"4943:82:164","nodes":[],"body":{"id":79208,"nodeType":"Block","src":"4983:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5000:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79204,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4993:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79207,"nodeType":"ExpressionStatement","src":"4993:25:164"}]},"baseFunctions":[74067],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"4952:16:164","parameters":{"id":79202,"nodeType":"ParameterList","parameters":[],"src":"4968:2:164"},"returnParameters":{"id":79203,"nodeType":"ParameterList","parameters":[],"src":"4983:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79219,"nodeType":"FunctionDefinition","src":"5031:91:164","nodes":[],"body":{"id":79218,"nodeType":"Block","src":"5080:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5097:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79214,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5090:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5090:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79217,"nodeType":"ExpressionStatement","src":"5090:25:164"}]},"baseFunctions":[74081],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5040:18:164","parameters":{"id":79212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79219,"src":"5059:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79210,"name":"address","nodeType":"ElementaryTypeName","src":"5059:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5058:9:164"},"returnParameters":{"id":79213,"nodeType":"ParameterList","parameters":[],"src":"5080:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79235,"nodeType":"FunctionDefinition","src":"5128:134:164","nodes":[],"body":{"id":79234,"nodeType":"Block","src":"5220:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5237:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79230,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5230:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79233,"nodeType":"ExpressionStatement","src":"5230:25:164"}]},"baseFunctions":[74119],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5137:25:164","parameters":{"id":79226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79235,"src":"5163:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79220,"name":"address","nodeType":"ElementaryTypeName","src":"5163:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79235,"src":"5172:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79222,"name":"uint256","nodeType":"ElementaryTypeName","src":"5172:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79225,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79235,"src":"5181:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5181:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5162:27:164"},"returnParameters":{"id":79229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79235,"src":"5211:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5211:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5210:9:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79250,"nodeType":"FunctionDefinition","src":"5268:150:164","nodes":[],"body":{"id":79249,"nodeType":"Block","src":"5376:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5393:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79245,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5386:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5386:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79248,"nodeType":"ExpressionStatement","src":"5386:25:164"}]},"baseFunctions":[74130],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5277:23:164","parameters":{"id":79241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79238,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79250,"src":"5301:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":79237,"nodeType":"UserDefinedTypeName","pathNode":{"id":79236,"name":"Gear.StakerRewardsCommitment","nameLocations":["5301:4:164","5306:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":83125,"src":"5301:28:164"},"referencedDeclaration":83125,"src":"5301:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":79240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79250,"src":"5338:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79239,"name":"uint48","nodeType":"ElementaryTypeName","src":"5338:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5300:45:164"},"returnParameters":{"id":79244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79250,"src":"5367:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5367:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5366:9:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79262,"nodeType":"FunctionDefinition","src":"5424:95:164","nodes":[],"body":{"id":79261,"nodeType":"Block","src":"5477:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5494:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79257,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5487:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79260,"nodeType":"ExpressionStatement","src":"5487:25:164"}]},"baseFunctions":[74089],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5433:13:164","parameters":{"id":79255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79262,"src":"5447:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79251,"name":"address","nodeType":"ElementaryTypeName","src":"5447:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79262,"src":"5456:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79253,"name":"address","nodeType":"ElementaryTypeName","src":"5456:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5446:18:164"},"returnParameters":{"id":79256,"nodeType":"ParameterList","parameters":[],"src":"5477:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79272,"nodeType":"FunctionDefinition","src":"5525:85:164","nodes":[],"body":{"id":79271,"nodeType":"Block","src":"5568:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5585:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79267,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5578:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5578:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79270,"nodeType":"ExpressionStatement","src":"5578:25:164"}]},"baseFunctions":[74101],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5534:12:164","parameters":{"id":79265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79272,"src":"5547:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79263,"name":"address","nodeType":"ElementaryTypeName","src":"5547:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5546:9:164"},"returnParameters":{"id":79266,"nodeType":"ParameterList","parameters":[],"src":"5568:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79282,"nodeType":"FunctionDefinition","src":"5616:84:164","nodes":[],"body":{"id":79281,"nodeType":"Block","src":"5658:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79277,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5668:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5668:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79280,"nodeType":"ExpressionStatement","src":"5668:25:164"}]},"baseFunctions":[74107],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"5625:11:164","parameters":{"id":79275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79282,"src":"5637:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79273,"name":"address","nodeType":"ElementaryTypeName","src":"5637:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5636:9:164"},"returnParameters":{"id":79276,"nodeType":"ParameterList","parameters":[],"src":"5658:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79292,"nodeType":"FunctionDefinition","src":"5706:88:164","nodes":[],"body":{"id":79291,"nodeType":"Block","src":"5752:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5769:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79287,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5762:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79290,"nodeType":"ExpressionStatement","src":"5762:25:164"}]},"baseFunctions":[74095],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"5715:15:164","parameters":{"id":79285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79292,"src":"5731:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79283,"name":"address","nodeType":"ElementaryTypeName","src":"5731:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5730:9:164"},"returnParameters":{"id":79286,"nodeType":"ParameterList","parameters":[],"src":"5752:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79306,"nodeType":"FunctionDefinition","src":"5800:117:164","nodes":[],"body":{"id":79305,"nodeType":"Block","src":"5875:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5892:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79301,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5885:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5885:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79304,"nodeType":"ExpressionStatement","src":"5885:25:164"}]},"baseFunctions":[74049],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"5809:18:164","parameters":{"id":79297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79306,"src":"5828:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79293,"name":"address","nodeType":"ElementaryTypeName","src":"5828:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79296,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79306,"src":"5837:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79295,"name":"uint48","nodeType":"ElementaryTypeName","src":"5837:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5827:17:164"},"returnParameters":{"id":79300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79306,"src":"5866:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79298,"name":"uint256","nodeType":"ElementaryTypeName","src":"5866:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5865:9:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79322,"nodeType":"FunctionDefinition","src":"5923:142:164","nodes":[],"body":{"id":79321,"nodeType":"Block","src":"6023:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6040:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79317,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6033:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6033:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79320,"nodeType":"ExpressionStatement","src":"6033:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"5932:25:164","parameters":{"id":79309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79322,"src":"5958:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79307,"name":"uint48","nodeType":"ElementaryTypeName","src":"5958:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5957:8:164"},"returnParameters":{"id":79316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79322,"src":"5987:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79310,"name":"address","nodeType":"ElementaryTypeName","src":"5987:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79311,"nodeType":"ArrayTypeName","src":"5987:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":79315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79322,"src":"6005:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":79313,"name":"uint256","nodeType":"ElementaryTypeName","src":"6005:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79314,"nodeType":"ArrayTypeName","src":"6005:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5986:36:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79334,"nodeType":"FunctionDefinition","src":"6071:98:164","nodes":[],"body":{"id":79333,"nodeType":"Block","src":"6127:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6144:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79329,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6137:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6137:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79332,"nodeType":"ExpressionStatement","src":"6137:25:164"}]},"baseFunctions":[74056],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6080:12:164","parameters":{"id":79327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79334,"src":"6093:20:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":79324,"nodeType":"UserDefinedTypeName","pathNode":{"id":79323,"name":"SlashData","nameLocations":["6093:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":73942,"src":"6093:9:164"},"referencedDeclaration":73942,"src":"6093:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73942_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":79325,"nodeType":"ArrayTypeName","src":"6093:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73942_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6092:22:164"},"returnParameters":{"id":79328,"nodeType":"ParameterList","parameters":[],"src":"6127:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79346,"nodeType":"FunctionDefinition","src":"6175:104:164","nodes":[],"body":{"id":79345,"nodeType":"Block","src":"6237:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":79342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6254:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":79341,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6247:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":79343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6247:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79344,"nodeType":"ExpressionStatement","src":"6247:25:164"}]},"baseFunctions":[74063],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6184:12:164","parameters":{"id":79339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79346,"src":"6197:26:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":79336,"nodeType":"UserDefinedTypeName","pathNode":{"id":79335,"name":"SlashIdentifier","nameLocations":["6197:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":73947,"src":"6197:15:164"},"referencedDeclaration":73947,"src":"6197:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73947_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":79337,"nodeType":"ArrayTypeName","src":"6197:17:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73947_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6196:28:164"},"returnParameters":{"id":79340,"nodeType":"ParameterList","parameters":[],"src":"6237:0:164"},"scope":79445,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":79359,"nodeType":"FunctionDefinition","src":"6285:201:164","nodes":[],"body":{"id":79358,"nodeType":"Block","src":"6355:131:164","nodes":[],"statements":[{"assignments":[79353],"declarations":[{"constant":false,"id":79353,"mutability":"mutable","name":"slot","nameLocation":"6373:4:164","nodeType":"VariableDeclaration","scope":79358,"src":"6365:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6365:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79356,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79354,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79384,"src":"6380:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6380:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6365:32:164"},{"AST":{"nativeSrc":"6433:47:164","nodeType":"YulBlock","src":"6433:47:164","statements":[{"nativeSrc":"6447:23:164","nodeType":"YulAssignment","src":"6447:23:164","value":{"name":"slot","nativeSrc":"6466:4:164","nodeType":"YulIdentifier","src":"6466:4:164"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6447:15:164","nodeType":"YulIdentifier","src":"6447:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79350,"isOffset":false,"isSlot":true,"src":"6447:15:164","suffix":"slot","valueSize":1},{"declaration":79353,"isOffset":false,"isSlot":false,"src":"6466:4:164","valueSize":1}],"flags":["memory-safe"],"id":79357,"nodeType":"InlineAssembly","src":"6408:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6294:8:164","parameters":{"id":79347,"nodeType":"ParameterList","parameters":[],"src":"6302:2:164"},"returnParameters":{"id":79351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79350,"mutability":"mutable","name":"middleware","nameLocation":"6343:10:164","nodeType":"VariableDeclaration","scope":79359,"src":"6327:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":79349,"nodeType":"UserDefinedTypeName","pathNode":{"id":79348,"name":"Storage","nameLocations":["6327:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73928,"src":"6327:7:164"},"referencedDeclaration":73928,"src":"6327:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73928_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6326:28:164"},"scope":79445,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79372,"nodeType":"FunctionDefinition","src":"6492:209:164","nodes":[],"body":{"id":79371,"nodeType":"Block","src":"6568:133:164","nodes":[],"statements":[{"assignments":[79366],"declarations":[{"constant":false,"id":79366,"mutability":"mutable","name":"slot","nameLocation":"6586:4:164","nodeType":"VariableDeclaration","scope":79371,"src":"6578:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6578:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79369,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79367,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79396,"src":"6593:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":79368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6593:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6578:35:164"},{"AST":{"nativeSrc":"6648:47:164","nodeType":"YulBlock","src":"6648:47:164","statements":[{"nativeSrc":"6662:23:164","nodeType":"YulAssignment","src":"6662:23:164","value":{"name":"slot","nativeSrc":"6681:4:164","nodeType":"YulIdentifier","src":"6681:4:164"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"6662:15:164","nodeType":"YulIdentifier","src":"6662:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":79363,"isOffset":false,"isSlot":true,"src":"6662:15:164","suffix":"slot","valueSize":1},{"declaration":79366,"isOffset":false,"isSlot":false,"src":"6681:4:164","valueSize":1}],"flags":["memory-safe"],"id":79370,"nodeType":"InlineAssembly","src":"6623:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6501:11:164","parameters":{"id":79360,"nodeType":"ParameterList","parameters":[],"src":"6512:2:164"},"returnParameters":{"id":79364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79363,"mutability":"mutable","name":"poaStorage","nameLocation":"6556:10:164","nodeType":"VariableDeclaration","scope":79372,"src":"6537:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":79362,"nodeType":"UserDefinedTypeName","pathNode":{"id":79361,"name":"POAStorage","nameLocations":["6537:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":74403,"src":"6537:10:164"},"referencedDeclaration":74403,"src":"6537:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$74403_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6536:31:164"},"scope":79445,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79384,"nodeType":"FunctionDefinition","src":"6707:128:164","nodes":[],"body":{"id":79383,"nodeType":"Block","src":"6765:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79379,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78896,"src":"6809:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79377,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6782:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6794:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6782:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6823:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6782:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79376,"id":79382,"nodeType":"Return","src":"6775:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"6716:15:164","parameters":{"id":79373,"nodeType":"ParameterList","parameters":[],"src":"6731:2:164"},"returnParameters":{"id":79376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79384,"src":"6756:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6756:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6755:9:164"},"scope":79445,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79396,"nodeType":"FunctionDefinition","src":"6841:135:164","nodes":[],"body":{"id":79395,"nodeType":"Block","src":"6902:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":79391,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78899,"src":"6946:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79389,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"6919:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6931:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"6919:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6919:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6964:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"6919:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79388,"id":79394,"nodeType":"Return","src":"6912:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"6850:18:164","parameters":{"id":79385,"nodeType":"ParameterList","parameters":[],"src":"6868:2:164"},"returnParameters":{"id":79388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79387,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79396,"src":"6893:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6893:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6892:9:164"},"scope":79445,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":79420,"nodeType":"FunctionDefinition","src":"6982:200:164","nodes":[],"body":{"id":79419,"nodeType":"Block","src":"7050:132:164","nodes":[],"statements":[{"assignments":[79404],"declarations":[{"constant":false,"id":79404,"mutability":"mutable","name":"slot","nameLocation":"7068:4:164","nodeType":"VariableDeclaration","scope":79419,"src":"7060:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7060:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79409,"initialValue":{"arguments":[{"id":79407,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79398,"src":"7102:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79405,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7075:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7090:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7075:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7075:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7060:52:164"},{"expression":{"id":79417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79413,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78896,"src":"7149:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79410,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7122:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7134:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7122:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7122:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7163:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7122:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79416,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79404,"src":"7171:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7122:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79418,"nodeType":"ExpressionStatement","src":"7122:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79401,"kind":"modifierInvocation","modifierName":{"id":79400,"name":"onlyOwner","nameLocations":["7040:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7040:9:164"},"nodeType":"ModifierInvocation","src":"7040:9:164"}],"name":"_setStorageSlot","nameLocation":"6991:15:164","parameters":{"id":79399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79398,"mutability":"mutable","name":"namespace","nameLocation":"7021:9:164","nodeType":"VariableDeclaration","scope":79420,"src":"7007:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79397,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7006:25:164"},"returnParameters":{"id":79402,"nodeType":"ParameterList","parameters":[],"src":"7050:0:164"},"scope":79445,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79444,"nodeType":"FunctionDefinition","src":"7188:207:164","nodes":[],"body":{"id":79443,"nodeType":"Block","src":"7259:136:164","nodes":[],"statements":[{"assignments":[79428],"declarations":[{"constant":false,"id":79428,"mutability":"mutable","name":"slot","nameLocation":"7277:4:164","nodeType":"VariableDeclaration","scope":79443,"src":"7269:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7269:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79433,"initialValue":{"arguments":[{"id":79431,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79422,"src":"7311:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":79429,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"7284:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":79430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7299:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"7284:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":79432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7284:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7269:52:164"},{"expression":{"id":79441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":79437,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78899,"src":"7358:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79434,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"7331:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":79436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7343:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"7331:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":79438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7331:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":79439,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7376:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"7331:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79440,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79428,"src":"7384:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7331:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79442,"nodeType":"ExpressionStatement","src":"7331:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":79425,"kind":"modifierInvocation","modifierName":{"id":79424,"name":"onlyOwner","nameLocations":["7249:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7249:9:164"},"nodeType":"ModifierInvocation","src":"7249:9:164"}],"name":"_setPoaStorageSlot","nameLocation":"7197:18:164","parameters":{"id":79423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79422,"mutability":"mutable","name":"namespace","nameLocation":"7230:9:164","nodeType":"VariableDeclaration","scope":79444,"src":"7216:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79421,"name":"string","nodeType":"ElementaryTypeName","src":"7216:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7215:25:164"},"returnParameters":{"id":79426,"nodeType":"ParameterList","parameters":[],"src":"7259:0:164"},"scope":79445,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":78884,"name":"IMiddleware","nameLocations":["835:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":74131,"src":"835:11:164"},"id":78885,"nodeType":"InheritanceSpecifier","src":"835:11:164"},{"baseName":{"id":78886,"name":"IPOAMiddleware","nameLocations":["852:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":74411,"src":"852:14:164"},"id":78887,"nodeType":"InheritanceSpecifier","src":"852:14:164"},{"baseName":{"id":78888,"name":"OwnableUpgradeable","nameLocations":["872:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"872:18:164"},"id":78889,"nodeType":"InheritanceSpecifier","src":"872:18:164"},{"baseName":{"id":78890,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["896:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"896:35:164"},"id":78891,"nodeType":"InheritanceSpecifier","src":"896:35:164"},{"baseName":{"id":78892,"name":"UUPSUpgradeable","nameLocations":["937:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"937:15:164"},"id":78893,"nodeType":"InheritanceSpecifier","src":"937:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79445,46243,44833,43943,42322,43484,42590,74411,74131],"name":"POAMiddleware","nameLocation":"814:13:164","scope":79446,"usedErrors":[42158,42163,42339,42342,43875,45427,45440,46100,46105,47372,48774,73752,73755,73758,73761,73764,73767,73770,73773,73776,73779,73782,73785,73788,73791,73794,73797,73800,73803,73806,73809,73812,73815,73818,73821,73824,73827,73830,73833,73836,73839,73842,73845,73848,73851,73854,73857,73860],"usedEvents":[42169,42347,44781]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":164} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Router.json b/ethexe/ethereum/abi/Router.json index 089c0b1e076..cdfcd8b6311 100644 --- a/ethexe/ethereum/abi/Router.json +++ b/ethexe/ethereum/abi/Router.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]},{"name":"head","type":"bytes32","internalType":"bytes32"},{"name":"lastAdvancedEthBlock","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"hasAggregatedPublicKey","type":"bool","internalType":"bool"},{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"name":"_signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterfaceAndExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"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":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"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":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"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":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","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":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"_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":"requestCodeValidationBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationExtraFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationOnBehalf","inputs":[{"name":"_requester","type":"address","internalType":"address"},{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_blobHashes","type":"bytes32[]","internalType":"bytes32[]"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v1","type":"uint8","internalType":"uint8"},{"name":"_r1","type":"bytes32","internalType":"bytes32"},{"name":"_s1","type":"bytes32","internalType":"bytes32"},{"name":"_v2","type":"uint8","internalType":"uint8"},{"name":"_r2","type":"bytes32","internalType":"bytes32"},{"name":"_s2","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationBaseFee","inputs":[{"name":"newBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationExtraFee","inputs":[{"name":"newExtraFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"},{"name":"maxValidators","type":"uint16","internalType":"uint16"},{"name":"requestCodeValidationBaseFee","type":"uint256","internalType":"uint256"},{"name":"requestCodeValidationExtraFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"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":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BatchCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","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"}],"anonymous":false},{"type":"event","name":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"EBCommitted","inputs":[{"name":"ethBlockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"MBCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"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":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"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":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidBlobHash","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"providedBlobHash","type":"bytes32","internalType":"bytes32"},{"name":"expectedBlobHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidBlobHashesLength","inputs":[{"name":"providedLength","type":"uint256","internalType":"uint256"},{"name":"expectedLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"requester","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidTimestamp","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":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020615c155f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051615b4e90816100c7823960805181818161282f01526128c20152f35b6001600160401b0319166001600160401b039081175f516020615c155f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613bba565b5f516020615ace5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613460575080630b9737ce1461342d5780630c18d277146133625780630d91bf2a1461319457806311bec80d146131615780631622441d14612cee578063188509e914612cc057806328e24b3d14612c925780633644e51514612c775780633683c4d214612bba5780633bd109fa14612b6b5780633d43b41814612b175780633f4ba83a14612a975780634f1ef2861461288357806352d1902d1461281c57806353f7fd4814611e375780635c975abb14611e085780636c2eb35014611899578063715018a61461183057806371a8cf2d146118025780637ecebe00146117aa57806382bdeaad146116925780638456cb591461161f57806384b0196e146114f757806384d22a4f1461149957806388f50cf0146114605780638b1edf1e146114015780638c4ace6a146112925780638da5cb5b1461125d5780638f381dbe146112175780639067088e146111ce57806396a2ddfa146111a05780639eb939a814611149578063a5d53a44146110c9578063ad3cb1cc14611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26134b6565b60036102fd5f516020615ace5f395f51905f525442906154fe565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796134b6565b610381613b87565b613b16565b80f35b50346103205780600319360112610320576020601f5f516020615ace5f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26134b6565b602435906044356001600160401b03811161080b576103f59036906004016134f4565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613bba565b8749156107f4575f516020615ace5f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f1981018352826135a5565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e0826135a5565b5190206105616156c6565b906040519161190160f01b83526002830152602282015260c43591604260a43592206157a7565b90929192615829565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613b09565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e881836135a5565b810190613747565b5f610677565b503d6106de565b6040513d86823e3d90fd5b81610715919493946135a5565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610764838686613911565b3514610771838686613911565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd90613afb565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a61348a565b6108326134a0565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613bba565b61086b602435600435613be1565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016136fd565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b6109848380926135a5565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e881836135a5565b5f610906565b6040513d88823e3d90fd5b816109ea916135a5565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615ace5f395f51905f525460086004610a2842846154fe565b0154910154906001600160801b038260801c921690615457565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615ace5f395f51905f525442906154fe565b0154604051908152f35b50346103205780600319360112610320575f516020615ace5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615ace5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615ace5f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615ace5f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f516020615ace5f395f51905f525442906154fe565b01613aa8565b60405191829160208352602083019061367a565b0390f35b5034610320578060031936011261032057604051610bd58161356e565b610bdd6139f7565b8152604051610beb81613553565b5f8152602081015f90526020820152610c026139f7565b6040820152610c0f613a75565b6060820152604051610c2081613553565b5f80825260208201526080820152610c366139f7565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615ace5f395f51905f5254610c71613a75565b50610c7e60098201615752565b90610c8b600f8201615752565b60088201549260405193610c9e8561358a565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce98761356e565b604051610cf581613524565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613553565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613524565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e60158901613949565b9760808a01988952601601610db290613a15565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb3916136b6565b90606001519061027f198a8203016102e08b0152610ed0916136b6565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615ace5f395f51905f52540160043582528452205416610f816040518092613635565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb49036906004016134f4565b905f516020615ace5f395f51905f525490610fce836138a6565b91610fdc60405193846135a5565b838352610fe8846138a6565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d6110586001938588613911565b613977565b828060a01b03165f528360205260405f20546110798288613935565b5201610ffc565b503461032057806003193601126103205750610bb46040516110a36040826135a5565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613656565b50346103205780600319360112610320575f516020615ace5f395f51905f52546001600160a01b03906002906111009042906154fe565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c808252019060408201918260405260208352611144603f19926060830190613656565b030190f35b50346103205780600319360112610320576111626139f7565b50606061117f60165f516020615ace5f395f51905f525401613a15565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615ace5f395f51905f52540154604051908152f35b5034610320576020366003190112610320576111e86134b6565b601a5f516020615ace5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b03821161032057602061125361124d36600486016134f4565b9061398b565b6040519015158152f35b50346103205780600319360112610320575f516020615a4e5f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff81168103610725576112bc613bba565b8249156113f2575f516020615ace5f395f51905f52546001810154156113e35760198101918385528260205260ff60408620541660038110156113cf576113c0576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af16113ab575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b816113b5916135a5565b61072557825f611376565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f525460018101908154611451576002015463ffffffff1640908115611442575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576114b2613780565b5060406114cf60155f516020615ace5f395f51905f525401613949565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f516020615a8e5f395f51905f52541580611609575b156115cc576115709061152f6152dd565b906115386153aa565b90602061157e6040519361154c83866135a5565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613656565b908682036040880152613656565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b8281106115b557505050500390f35b8351855286955093810193928101926001016115a6565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615b2e5f395f51905f52541561151e565b5034610320578060031936011261032057611638613b87565b611640613bba565b600160ff195f516020615aee5f395f51905f525416175f516020615aee5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e576116c39036906004016134f4565b905f516020615ace5f395f51905f5254906116dd836138a6565b916116eb60405193846135a5565b8383526116f7846138a6565b602084019490601f19013686376019869201915b81811061176057868587604051928392602084019060208552518091526040840192915b81811061173d575050500390f35b91935091602080826117526001948851613635565b01940191019184939261172f565b61176b818386613911565b3587528260205260ff6040882054166117848287613935565b6003821015611796575260010161170b565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b036117d26134b6565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615ace5f395f51905f52540154604051908152f35b5034610320578060031936011261032057611849613b87565b5f516020615a4e5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346103205780600319360112610320576118b2613b87565b5f516020615b0e5f395f51905f525460ff8160401c16908115611df3575b50611de4575f516020615b0e5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615a4e5f395f51905f525461192a906001600160a01b0316611922615727565b610381615727565b6119326137b6565b9061193b6137e3565b90611944615727565b61194c615727565b82516001600160401b038111611ce7576119735f516020615a2e5f395f51905f52546152a5565b601f8111611d80575b506020601f8211600114611d0657829394829392611cfb575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b81516001600160401b038111611ce7576119dd5f516020615a6e5f395f51905f52546152a5565b601f8111611c7a575b50602092601f8211600114611c0157928293829392611bf6575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b805f516020615a8e5f395f51905f5255805f516020615b2e5f395f51905f52555f516020615ace5f395f51905f5254611a5861520d565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611aa681613553565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611ad142846154fe565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611b22918491611bc7575b5061385a565b90816103e8026103e881048303611bb357601e820155816101f402916101f4830403611b9f57601f015560ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611be9915060203d602011611bef575b611be181836135a5565b810190613841565b5f611b1c565b503d611bd7565b015190505f80611a00565b601f198216935f516020615a6e5f395f51905f52845280842091845b868110611c625750836001959610611c4a575b505050811b015f516020615a6e5f395f51905f5255611a21565b01515f1960f88460031b161c191690555f8080611c30565b91926020600181928685015181550194019201611c1d565b818111156119e6575f516020615a6e5f395f51905f528352611cd9907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510611cdf575b601f82910160051c03910161528a565b5f6119e6565b859150611cc9565b634e487b7160e01b82526041600452602482fd5b015190505f80611995565b5f516020615a2e5f395f51905f52835280832090601f198316845b818110611d6857509583600195969710611d50575b505050811b015f516020615a2e5f395f51905f52556119b6565b01515f1960f88460031b161c191690555f8080611d36565b9192602060018192868b015181550194019201611d21565b8181111561197c575f516020615a2e5f395f51905f528352611dde907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611cdf57601f82910160051c03910161528a565b5f61197c565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f6118d0565b5034610320578060031936011261032057602060ff5f516020615aee5f395f51905f5254166040519015158152f35b50346103205761016036600319011261032057611e526134b6565b906024356001600160a01b0381169081900361098e57611e7061348a565b92611e796134a0565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b03811161080757611eed9036906004016134f4565b9590935f516020615b0e5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612814575b600114908161280a575b159081612801575b506127f257611f6f908a60016001600160401b03195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f52556127c2575b611922615727565b611f77615727565b611f7f6137b6565b611f876137e3565b90611f90615727565b611f98615727565b8051906001600160401b0382116127ae5781908b611fc35f516020615a2e5f395f51905f52546152a5565b601f811161275d575b5050602090601f83116001146126e1578c926126d6575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b8051906001600160401b0382116126c257819061202e5f516020615a6e5f395f51905f52546152a5565b601f8111612653575b50602090601f83116001146125d7578b926125cc575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b875f516020615a8e5f395f51905f5255875f516020615b2e5f395f51905f5255612096615727565b61209e615727565b42156125bd5781156125ae578181111561259f57600a6120be8383613802565b04831015612590576040809a81516120d683826135a5565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612109613b87565b5f1991519020018a5260ff1960208b2016809e815f516020615ace5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a161215e61520d565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906121a882613524565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561221c613780565b50895161222881613553565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061226d81613524565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa90811561258657906122cd918691611bc7575061385a565b806103e8026103e88104820361257257601e8a0155806101f402906101f482040361255e579061232d91601f8a015561232587519861230b8a613553565b60e4358a5260208a019461010435865260243692016135e1565b9336916138bd565b958051825170014551231950b75fc4402da1732fc9bebe198210918261254d575b50501561253e5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156125315752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156123f65782845260208085208201546001600160a01b03165f90815290869052869020805460ff191690556001016123be565b509195949094865b835181101561243e576001906001600160a01b0361241c8287613935565b5116828060a01b03165f5285602052865f208260ff19825416179055016123fe565b50925092938151916001600160401b03831161251d57600160401b831161251d576020908254848455808510612502575b500190865260208620865b8381106124e55750505050600e42910155612493575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161247a565b61251790848a528580858c200191039061528a565b5f61246f565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6125579250615923565b5f8061234e565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f8061204d565b5f516020615a6e5f395f51905f528c52818c209250601f1984168c5b81811061263b5750908460019594939210612623575b505050811b015f516020615a6e5f395f51905f525561206e565b01515f1960f88460031b161c191690555f8080612609565b929360206001819287860151815501950193016125f3565b82811115612037575f516020615a6e5f395f51905f528c526126b4907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e602087106126ba575b50601f82910160051c03910161528a565b5f612037565b91508e6126a3565b634e487b7160e01b8a52604160045260248afd5b015190505f80611fe3565b5f516020615a2e5f395f51905f528d52818d209250601f1984168d5b818110612745575090846001959493921061272d575b505050811b015f516020615a2e5f395f51905f5255612004565b01515f1960f88460031b161c191690555f8080612713565b929360206001819287860151815501950193016126fd565b83811115611fcc575f516020615a2e5f395f51905f5261279f92528d6020812091601f860160051c91602087106127a65750601f82910160051c03910161528a565b8b5f611fcc565b91508f6126a3565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f5255611f67565b63f92ee8a960e01b8952600489fd5b9050155f611f2d565b303b159150611f25565b8b9150611f1b565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036128745760206040515f516020615aae5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b506040366003190112610320576128986134b6565b906024356001600160401b03811161098e576128b8903690600401613617565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612a75575b50612a66576128fa613b87565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612a2e575b5061293f57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615aae5f395f51905f528103612a1c5750813b15612a0a575f516020615aae5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156129f057808360206129e495519101845af43d156129e8573d916129c8836135c6565b926129d660405194856135a5565b83523d85602085013e6159cf565b5080f35b6060916159cf565b505050346129fb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612a5e575b81612a4a602093836135a5565b81010312612a5a5751945f612926565b5f80fd5b3d9150612a3d565b63703e46dd60e11b8252600482fd5b5f516020615aae5f395f51905f52546001600160a01b0316141590505f6128ed565b5034610320578060031936011261032057612ab0613b87565b5f516020615aee5f395f51905f525460ff811615612b085760ff19165f516020615aee5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612b316134b6565b612b39613b87565b5f516020615ace5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612b84613780565b506040612ba8612ba35f516020615ace5f395f51905f525442906154fe565b613798565b60208251918051835201516020820152f35b503461032057606036600319011261032057612bd461348a565b612bdc613bba565b612bea602435600435614057565b506001600160a01b0390811691908116612c725750335b5f516020615ace5f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612c01565b50346103205780600319360112610320576020610a426156c6565b5034610320578060031936011261032057602060015f516020615ace5f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615ace5f395f51905f52540154604051908152f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57612d4b9036906004016134f4565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6131525760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ace5f395f51905f5254906001820154156113e3578154156130f6575b600382015460446004350135036130e75765ffffffffffff60048301541665ffffffffffff612dea60246004350161376d565b16106130d957612dff600435600401836141f9565b92612e1460a4600435016004356004016146fb565b808096925060051b046020148515171561257257612e348560051b615496565b8695865b818810612fa45750612f6a965060051b902090612e5a6004356004018661473d565b612e6960043560040187614b1b565b90612e7860246004350161376d565b93612e8760646004350161375f565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152612eec60e7826135a5565b5190209283600382015565ffffffffffff612f0b60246004350161376d565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff612f5f60246004350161376d565b169360243591614fa4565b15612f9557807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b612fb860a4600435016004356004016146fb565b8910156130c5578860061b8101358a526019880160205260ff60408b20541660038110156107d1576001036130b65760019160209161307b8b8b8e868360061b8601019261300584614730565b156130975760061b85013590525060198c01855260408e20805460ff19166002179055601c8c01805461303790613afb565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661306684614730565b1515926040519060061b8701358152a2614730565b908b60061b01358c52825360218b208186015201970196612e38565b60409260199160061b87013583520187522060ff19815416905561303a565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b61311361310760646004350161375f565b6004356004013561414f565b156131435765ffffffffffff61312d60246004350161376d565b164211612db757631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205760203660031901126103205761317b613b87565b600435601e5f516020615ace5f395f51905f5254015580f35b503461032057610100366003190112610320576131af61348a565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576131da613bba565b6131e8602435600435614057565b6006015490936001600160a01b0390911691823b1561080b5761322f8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016136fd565b038183885af161334d575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613342578591613323575b5015613314576001600160a01b039081169290811661330e575033905b5f516020615ace5f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b9061329f565b631e4e7d0960e21b8452600484fd5b61333c915060203d6020116106f6576106e881836135a5565b5f613282565b6040513d87823e3d90fd5b81613357916135a5565b61072557825f61323a565b34612a5a576080366003190112612a5a5761337b61348a565b6133836134a0565b9061338c613bba565b61339a602435600435613be1565b506001600160a01b0390811691908116613427575033915b813b15612a5a57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561341c5760209261340c575b50604051908152f35b5f613416916135a5565b5f613403565b6040513d5f823e3d90fd5b916133b2565b34612a5a576020366003190112612a5a57613446613b87565b600435601f5f516020615ace5f395f51905f525401555f80f35b34612a5a575f366003190112612a5a57602090601c5f516020615ace5f395f51905f525401548152f35b604435906001600160a01b0382168203612a5a57565b606435906001600160a01b0382168203612a5a57565b600435906001600160a01b0382168203612a5a57565b35906001600160a01b0382168203612a5a57565b35906001600160801b0382168203612a5a57565b9181601f84011215612a5a578235916001600160401b038311612a5a576020808501948460051b010111612a5a57565b606081019081106001600160401b0382111761353f57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761353f57604052565b61016081019081106001600160401b0382111761353f57604052565b608081019081106001600160401b0382111761353f57604052565b90601f801991011681019081106001600160401b0382111761353f57604052565b6001600160401b03811161353f57601f01601f191660200190565b9291926135ed826135c6565b916135fb60405193846135a5565b829481845281830111612a5a578281602093845f960137010152565b9080601f83011215612a5a57816020613632933591016135e1565b90565b9060038210156136425752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106136975750505090565b82516001600160a01b031684526020938401939092019160010161368a565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606136f4604085015160a08386015260a085019061367a565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612a5a57518015158103612a5a5790565b3560ff81168103612a5a5790565b3565ffffffffffff81168103612a5a5790565b6040519061378d82613553565b5f6020838281520152565b906040516137a581613553565b602060018294805484520154910152565b604051906137c56040836135a5565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906137f26040836135a5565b60018252603160f81b6020830152565b9190820391821161380f57565b634e487b7160e01b5f52601160045260245ffd5b811561382d570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612a5a575160ff81168103612a5a5790565b60ff16604d811161380f57600a0a90565b8181029291811591840414171561380f57565b9190826040910312612a5a5760405161389681613553565b6020808294803584520135910152565b6001600160401b03811161353f5760051b60200190565b9291906138c9816138a6565b936138d760405195866135a5565b602085838152019160051b8101928311612a5a57905b8282106138f957505050565b60208091613906846134cc565b8152019101906138ed565b91908110156139215760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139215760209160051b010190565b9060405161395681613553565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612a5a5790565b6139a45f516020615ace5f395f51905f525442906154fe565b600301905f5b8381106139ba5750505050600190565b6139c8611058828685613911565b6001600160a01b03165f9081526020849052604090205460ff16156139ef576001016139aa565b505050505f90565b60405190613a0482613524565b5f6040838281528260208201520152565b90604051613a2281613524565b60406002829480548452600181015460208501520154910152565b60405190613a4a8261358a565b5f606083604051613a5a81613553565b83815283602082015281528260208201528160408201520152565b60405190613a828261358a565b815f81525f6020820152613a94613a3d565b60408201526060613aa3613a3d565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ad9575050613ad7925003836135a5565b565b84546001600160a01b0316835260019485019487945060209093019201613ac2565b5f19811461380f5760010190565b9190820180921161380f57565b6001600160a01b03168015613b74575f516020615a4e5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615a4e5f395f51905f52546001600160a01b03163303613ba757565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615aee5f395f51905f525416613bd257565b63d93c066560e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f206040516103008101908082106001600160401b03831117612a5a576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f2060405160608101908082106001600160401b03831117612a5a57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b435f198101939290841161380f5760ff1643811061419f57505f925b8381101561417b575b505f925050565b804082810361418d5750600193505050565b1561419a575f190161416b565b614174565b6141a99043613802565b9261416b565b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160051b36038313612a5a57565b903590605e1981360301821215612a5a570190565b9060808101600161420a82846141af565b9050116146ec5761421b81836141af565b9050156146c55761422b916141af565b15613921578061423a916141e4565b9161424583806141af565b9190928260051b938385046020148415171561380f5761426785969495615496565b925f945f97601a60fe19853603019501965b888a1015614628578960051b85013586811215612a5a57850161429b81613977565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036142cd82615482565b16151580614615575b614604575b6001600160a01b036142ec84613977565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b039061436b906001600160a01b03614329856134cc565b1660248901526020840135604489015261434560408501614b0e565b151560648901526001600160a01b03614360606086016134cc565b1660848901526134e0565b1660a486015261437d60a08201614b0e565b151560c486015236819003601e190160c082013581811215612a5a578201602081359101936001600160401b038211612a5a576060820236038513612a5a57819061010060e48a015252610144870193905f905b8082106145ba5750505060e082013590811215612a5a5701803560208201926001600160401b038211612a5a578160051b908136038513612a5a5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106144ad5750505050505050602093916001600160801b03848093039316905af190811561341c575f9161447b575b50816020916001938a015201990198614279565b90506020813d82116144a5575b81614495602093836135a5565b81010312612a5a57516001614467565b3d9150614488565b919395979850919395601f19848203018752873582811215612a5a578301602081013582526001600160a01b036144e6604083016134cc565b1660208301526060810135603e193683900301811215612a5a578101602081013591906040016001600160401b038311612a5a578236038113612a5a57829060e060408601528160e08601526101008501375f61010083850101526001600160801b03614555608083016134e0565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612a5a578360209361459760e086956101009560a060019a015201614b0e565b151560c0830152601f80199101160101990197019401918a989796959391614436565b90919460608060019288358152838060a01b036145d960208b016134cc565b1660208201526001600160801b036145f360408b016134e0565b1660408201520196019201906143d1565b905061460f81615482565b906142db565b5061462260a08401614730565b156142d6565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a1013580614696575b604051916020830193845260408301526060820152606081526146906080826135a5565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a161466c565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160061b36038313612a5a57565b358015158103612a5a5790565b60c08201600161474d82856141af565b905011614acd5761475e81846141af565b9050156146c55761476f90836141af565b1561392157803590607e1981360301821215612a5a570191606083019060206147978361376d565b91019065ffffffffffff806147ab8461376d565b1691161015614abe576147bd8261376d565b65ffffffffffff80600286015460201c16911610614aaf5761480365ffffffffffff6147fc6147f6826147ef8761376d565b16876154bb565b9361376d565b16846154bb565b1115614aa0576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446148498361484189896141e4565b01358b613b09565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561341c575f91614a81575b5015614a72575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561341c575f95614a3a575b50906148ce916141e4565b916148d88261376d565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612a5a578101602081359101936001600160401b038211612a5a578160061b36038513612a5a5760606044890152819052869360c485019392915f5b818110614a0257505050836020959365ffffffffffff829484895f9601356064860152614971604060018060a01b0392016134cc565b16608485015216602483015203925af191821561341c575f926149cc575b506149999061376d565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526146906066826135a5565b9091506020813d6020116149fa575b816149e8602093836135a5565b81010312612a5a57519061499961498f565b3d91506149db565b919550919293604080600192838060a01b03614a1d8a6134cc565b16815260208901356020820152019601910191889594939261493b565b919094506020823d602011614a6a575b81614a57602093836135a5565b81010312612a5a579051936148ce6148c3565b3d9150614a4a565b6367b9145160e01b5f5260045ffd5b614a9a915060203d6020116106f6576106e881836135a5565b5f614876565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918136038313612a5a57565b35908115158203612a5a57565b9060e081016001614b2c82846141af565b905011614f9557614b3d81836141af565b9050156146c557614b4d916141af565b156139215780359060be1981360301821215612a5a570160808101614b7281836141af565b905015614f865765ffffffffffff600284015460201c1691614b948342613802565b614ba360168601548092613823565b9360a0830135946001810180911161380f578503614f7757614bc885614bce9361386b565b90613b09565b93614bdd601782015486613802565b4210614f6857614bec906154e3565b9160058301934285541015614f5957614c0483614730565b9260208101906060810193612325614c40614c1f8785614adc565b9190614c2b85876141af565b949091614c38368a61387e565b9436916135e1565b97614ea0575b50505f989798976003600489019801985b8854811015614c8e575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614c57565b5090919293949596985f5b8851811015614cda576001906001600160a01b03614cb7828c613935565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614c99565b50929598909396919497508151916001600160401b03831161353f57600160401b831161353f576020908254848455808510614e85575b5001905f5260205f205f5b838110614e685750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612a5a576040519260a08401908482106001600160401b0383111761353f57614d9091604052614d8784614b0e565b8552369061387e565b9460208401958652356001600160401b038111612a5a57614db49036908401613617565b604084015235906001600160401b038211612a5a570136601f82011215612a5a57614de69036906020813591016138bd565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110614e465750505081520380825261469090602001826135a5565b82516001600160a01b0316855286955060209485019490920191600101614e29565b82516001600160a01b031681830155602090920191600101614d1c565b614e9a90845f528580855f200191039061528a565b5f614d11565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182614f48575b505015614f395751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff0918215614f2c57526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614c46565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b614f529250615923565b5f80614ec6565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614fc342846154bb565b614fdb614fd56016860154809361386b565b83613b09565b9182841080806151f7575b156151c5575083106151b757614ffc9083613b09565b106151a85761500c905b826154fe565b94601960f81b5f523060601b60025260165260365f20936002811015613642578061509d5750506001810361508e57156139215761504d8161505492614adc565b36916135e1565b91606083510361507f578260206136329401516060604083015192015192600181549101549061551a565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150b05750505050505f90565b6150d590600860048796970154910154906001600160801b038260801c921690615457565b925f9260035f9201915b8681101561519d576151056105886150ff61504d8460051b860186614adc565b866158e9565b6001600160a01b0381165f9081526020859052604090205460ff16615130575b506001905b016150df565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15615175575060019061512a565b94600161518392965d613afb565b93858514615191575f615125565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116151e85761500c926151e0575b50615006565b90505f6151da565b6347860b9760e01b5f5260045ffd5b50615206601887015485613b09565b4210614fe6565b6152156139f7565b5063ffffffff43116152725765ffffffffffff421161525a5760405161523a81613524565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061529857505050565b5f8282015560010161528c565b90600182811c921680156152d3575b60208310146152bf57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916152b4565b604051905f825f516020615a2e5f395f51905f5254916152fc836152a5565b808352926001811690811561538b5750600114615320575b613ad7925003836135a5565b505f516020615a2e5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061536f575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615357565b60209250613ad794915060ff191682840152151560051b820101615314565b604051905f825f516020615a6e5f395f51905f5254916153c9836152a5565b808352926001811690811561538b57506001146153ec57613ad7925003836135a5565b505f516020615a6e5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061543b575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615423565b6001600160801b0380921602911661546f8183613823565b91811561382d5706156136325760010190565b356001600160801b0381168103612a5a5790565b6040519190601f01601f191682016001600160401b03811183821017612a5a57604052565b60166154da6136329365ffffffffffff600285015460201c1690613802565b91015490613823565b6154ed4282615889565b156154f85760090190565b600f0190565b906155099082615889565b1561551457600f0190565b60090190565b92939194906155298587615923565b156156bc5782156156bc5770014551231950b75fc4402da1732fc9bebe198310156156bc576001169061010e61555e81615496565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c0908801561519d5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6156ce615946565b6156d661599d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261469060c0826135a5565b60ff5f516020615b0e5f395f51905f525460401c161561574357565b631afcd79f60e31b5f5260045ffd5b61575a613a3d565b506002810154600582015460405192909161579a916004916001600160a01b03166157848661358a565b61578d82613798565b8652602086015201613aa8565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161581e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561341c575f516001600160a01b0381161561581457905f905f90565b505f906001905f90565b5050505f9160039190565b6004811015613642578061583b575050565b600181036158525763f645eedf60e01b5f5260045ffd5b6002810361586d575063fce698f760e01b5f5260045260245ffd5b6003146158775750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146158da578181841093119182159111159181906158d3575b156158c457826158be57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816158af565b63f26224af60e01b5f5260045ffd5b8151919060418303615919576159129250602082015190606060408401519301515f1a906157a7565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b61594e6152dd565b805190811561595e576020012090565b50505f516020615a8e5f395f51905f525480156159785790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159a56153aa565b80519081156159b5576020012090565b50505f516020615b2e5f395f51905f525480156159785790565b906159f357508051156159e457602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615a24575b615a04575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156159fc56fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:47875:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;7983:34:30;7979:146;;-1:-1:-1;1553:47875:165;;;;;;;;1052:13:60;1553:47875:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;8085:29:30;;1553:47875:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1553:47875:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613bba565b5f516020615ace5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613460575080630b9737ce1461342d5780630c18d277146133625780630d91bf2a1461319457806311bec80d146131615780631622441d14612cee578063188509e914612cc057806328e24b3d14612c925780633644e51514612c775780633683c4d214612bba5780633bd109fa14612b6b5780633d43b41814612b175780633f4ba83a14612a975780634f1ef2861461288357806352d1902d1461281c57806353f7fd4814611e375780635c975abb14611e085780636c2eb35014611899578063715018a61461183057806371a8cf2d146118025780637ecebe00146117aa57806382bdeaad146116925780638456cb591461161f57806384b0196e146114f757806384d22a4f1461149957806388f50cf0146114605780638b1edf1e146114015780638c4ace6a146112925780638da5cb5b1461125d5780638f381dbe146112175780639067088e146111ce57806396a2ddfa146111a05780639eb939a814611149578063a5d53a44146110c9578063ad3cb1cc14611080578063baaf020114610f83578063c13911e814610f3f578063c2eb812f14610bb8578063ca1e781914610b68578063cacf66ab14610b30578063d456fd5114610afa578063e3a6684f14610abb578063e6fabc0914610a82578063ed612f8c14610a4a578063edc87225146109f5578063ee32004f1461080f578063f0fd702a146103b7578063f1ef31ec14610389578063f2fde38b1461035c578063f4f20ac0146103235763facd743b0361000f5734610320576020366003190112610320576102e26134b6565b60036102fd5f516020615ace5f395f51905f525442906154fe565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600701546040516001600160a01b039091168152602090f35b5034610320576020366003190112610320576103866103796134b6565b610381613b87565b613b16565b80f35b50346103205780600319360112610320576020601f5f516020615ace5f395f51905f52540154604051908152f35b503461032057610140366003190112610320576103d26134b6565b602435906044356001600160401b03811161080b576103f59036906004016134f4565b90916064359060843560ff811681036108075760e4359060ff821682036108035761041e613bba565b8749156107f4575f516020615ace5f395f51905f5254946001860154156107e5576019860196888a528760205260ff60408b20541660038110156107d1576107c257895b80496107b45780830361079d5750895b82811061075657508542116107425760405160208101906001600160fb1b03841161073e576104bd602082610588956105919760051b8091873781010301601f1981018352826135a5565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261055660e0826135a5565b5190206105616156c6565b906040519161190160f01b83526002830152602282015260c43591604260a43592206157a7565b90929192615829565b6001600160a01b031681810361072957505086906105c660018060a01b0360068701541695601f601e82015491015490613b09565b93853b156107255760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af1610708575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156106fd5784916106ce575b50156106bf5781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b6106f0915060203d6020116106f6575b6106e881836135a5565b810190613747565b5f610677565b503d6106de565b6040513d86823e3d90fd5b81610715919493946135a5565b6107215790855f61062a565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b804980610764838686613911565b3514610771838686613911565b359015610782575050600101610472565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107bd90613afb565b610462565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b5034610320576101203660031901126103205761082a61348a565b6108326134a0565b6084356001600160801b0381169081810361099d578460c43560ff8116810361098e5761085d613bba565b61086b602435600435613be1565b6006015490936001600160a01b0390911691823b1561080b576108b38480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016136fd565b038183885af16109e0575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109d55786916109b6575b50156109a7576001600160a01b03908116939081166109a1575033915b833b1561099d57604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af1801561099257610979575b602082604051908152f35b6109848380926135a5565b61098e578161096e565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610923565b631e4e7d0960e21b8552600485fd5b6109cf915060203d6020116106f6576106e881836135a5565b5f610906565b6040513d88823e3d90fd5b816109ea916135a5565b61072557825f6108be565b50346103205780600319360112610320576020610a425f516020615ace5f395f51905f525460086004610a2842846154fe565b0154910154906001600160801b038260801c921690615457565b604051908152f35b503461032057806003193601126103205760206004610a785f516020615ace5f395f51905f525442906154fe565b0154604051908152f35b50346103205780600319360112610320575f516020615ace5f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610320578060031936011261032057604060085f516020615ace5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610320578060031936011261032057602065ffffffffffff60045f516020615ace5f395f51905f5254015416604051908152f35b5034610320578060031936011261032057602065ffffffffffff60025f516020615ace5f395f51905f52540154821c16604051908152f35b5034610320578060031936011261032057610bb4610ba06004610b9a5f516020615ace5f395f51905f525442906154fe565b01613aa8565b60405191829160208352602083019061367a565b0390f35b5034610320578060031936011261032057604051610bd58161356e565b610bdd6139f7565b8152604051610beb81613553565b5f8152602081015f90526020820152610c026139f7565b6040820152610c0f613a75565b6060820152604051610c2081613553565b5f80825260208201526080820152610c366139f7565b60a08201528160c08201528160e0820152816101008201528161012082015261014001525f516020615ace5f395f51905f5254610c71613a75565b50610c7e60098201615752565b90610c8b600f8201615752565b60088201549260405193610c9e8561358a565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e83015490601f8401549260405195610ce98761356e565b604051610cf581613524565b60018701548152600287015463ffffffff8116602083015260201c65ffffffffffff166040820152875260405197610d2c89613553565b60038701548952600487015465ffffffffffff1660208a01526020880198895260405190610d5982613524565b60058801546001600160a01b039081168352600689015481166020840152600789015416604080840191909152890191825260608901908152610d9e60158901613949565b9760808a01988952601601610db290613a15565b9160a08a0192835260c08a0193845260e08a019485526101008a019586526101208a019687526101408a019788526040519a8b9a60208c5251805160208d0152602081015163ffffffff1660408d01526040015165ffffffffffff1660608c015251805160808c01526020015165ffffffffffff1660a08b015251600160a01b6001900381511660c08b0152600160a01b6001900360208201511660e08b0152600160a01b600190039060400151166101008a0152516101208901610260905280516001600160801b03166102808a015260208101516001600160801b03166102a08a015260408101516102c08a01608090526103008a01610eb3916136b6565b90606001519061027f198a8203016102e08b0152610ed0916136b6565b965180516001600160401b03166101408a0152602001516001600160801b031661016089015251805161018089015260208101516101a0890152604001516101c0880152516101e0870152516102008601525161ffff1661022085015251610240840152516102608301520390f35b50346103205760203660031901126103205760ff604060209260195f516020615ace5f395f51905f52540160043582528452205416610f816040518092613635565bf35b5034610320576020366003190112610320576004356001600160401b03811161098e57610fb49036906004016134f4565b905f516020615ace5f395f51905f525490610fce836138a6565b91610fdc60405193846135a5565b838352610fe8846138a6565b602084019490601f1901368637601a869201915b81811061104757868587604051928392602084019060208552518091526040840192915b81811061102e575050500390f35b8251845285945060209384019390920191600101611020565b8061105d6110586001938588613911565b613977565b828060a01b03165f528360205260405f20546110798288613935565b5201610ffc565b503461032057806003193601126103205750610bb46040516110a36040826135a5565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613656565b50346103205780600319360112610320575f516020615ace5f395f51905f52546001600160a01b03906002906111009042906154fe565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c808252019060408201918260405260208352611144603f19926060830190613656565b030190f35b50346103205780600319360112610320576111626139f7565b50606061117f60165f516020615ace5f395f51905f525401613a15565b610f8160405180926040809180518452602081015160208501520151910152565b50346103205780600319360112610320576020601b5f516020615ace5f395f51905f52540154604051908152f35b5034610320576020366003190112610320576111e86134b6565b601a5f516020615ace5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461032057602036600319011261032057600435906001600160401b03821161032057602061125361124d36600486016134f4565b9061398b565b6040519015158152f35b50346103205780600319360112610320575f516020615a4e5f395f51905f52546040516001600160a01b039091168152602090f35b50346103205760a03660031901126103205760043560443560ff81168103610725576112bc613bba565b8249156113f2575f516020615ace5f395f51905f52546001810154156113e35760198101918385528260205260ff60408620541660038110156113cf576113c0576006820154601e9092015485926001600160a01b031691823b1561080b5760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af16113ab575b50506040516323b872dd60e01b8152336004820152306024820152604481019190915291602091839182908160648101610665565b816113b5916135a5565b61072557825f611376565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f525460018101908154611451576002015463ffffffff1640908115611442575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103205780600319360112610320575f516020615ace5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103205780600319360112610320576114b2613780565b5060406114cf60155f516020615ace5f395f51905f525401613949565b610f81825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103205780600319360112610320575f516020615a8e5f395f51905f52541580611609575b156115cc576115709061152f6152dd565b906115386153aa565b90602061157e6040519361154c83866135a5565b8385525f368137604051968796600f60f81b885260e08589015260e0880190613656565b908682036040880152613656565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b8281106115b557505050500390f35b8351855286955093810193928101926001016115a6565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615b2e5f395f51905f52541561151e565b5034610320578060031936011261032057611638613b87565b611640613bba565b600160ff195f516020615aee5f395f51905f525416175f516020615aee5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610320576020366003190112610320576004356001600160401b03811161098e576116c39036906004016134f4565b905f516020615ace5f395f51905f5254906116dd836138a6565b916116eb60405193846135a5565b8383526116f7846138a6565b602084019490601f19013686376019869201915b81811061176057868587604051928392602084019060208552518091526040840192915b81811061173d575050500390f35b91935091602080826117526001948851613635565b01940191019184939261172f565b61176b818386613911565b3587528260205260ff6040882054166117848287613935565b6003821015611796575260010161170b565b634e487b7160e01b89526021600452602489fd5b5034610320576020366003190112610320576020906040906001600160a01b036117d26134b6565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610320578060031936011261032057602060035f516020615ace5f395f51905f52540154604051908152f35b5034610320578060031936011261032057611849613b87565b5f516020615a4e5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346103205780600319360112610320576118b2613b87565b5f516020615b0e5f395f51905f525460ff8160401c16908115611df3575b50611de4575f516020615b0e5f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615a4e5f395f51905f525461192a906001600160a01b0316611922615727565b610381615727565b6119326137b6565b9061193b6137e3565b90611944615727565b61194c615727565b82516001600160401b038111611ce7576119735f516020615a2e5f395f51905f52546152a5565b601f8111611d80575b506020601f8211600114611d0657829394829392611cfb575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b81516001600160401b038111611ce7576119dd5f516020615a6e5f395f51905f52546152a5565b601f8111611c7a575b50602092601f8211600114611c0157928293829392611bf6575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b805f516020615a8e5f395f51905f5255805f516020615b2e5f395f51905f52555f516020615ace5f395f51905f5254611a5861520d565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611aa681613553565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611ad142846154fe565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa801561099257611b22918491611bc7575b5061385a565b90816103e8026103e881048303611bb357601e820155816101f402916101f4830403611b9f57601f015560ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526011600452602484fd5b611be9915060203d602011611bef575b611be181836135a5565b810190613841565b5f611b1c565b503d611bd7565b015190505f80611a00565b601f198216935f516020615a6e5f395f51905f52845280842091845b868110611c625750836001959610611c4a575b505050811b015f516020615a6e5f395f51905f5255611a21565b01515f1960f88460031b161c191690555f8080611c30565b91926020600181928685015181550194019201611c1d565b818111156119e6575f516020615a6e5f395f51905f528352611cd9907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510611cdf575b601f82910160051c03910161528a565b5f6119e6565b859150611cc9565b634e487b7160e01b82526041600452602482fd5b015190505f80611995565b5f516020615a2e5f395f51905f52835280832090601f198316845b818110611d6857509583600195969710611d50575b505050811b015f516020615a2e5f395f51905f52556119b6565b01515f1960f88460031b161c191690555f8080611d36565b9192602060018192868b015181550194019201611d21565b8181111561197c575f516020615a2e5f395f51905f528352611dde907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611cdf57601f82910160051c03910161528a565b5f61197c565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f6118d0565b5034610320578060031936011261032057602060ff5f516020615aee5f395f51905f5254166040519015158152f35b50346103205761016036600319011261032057611e526134b6565b906024356001600160a01b0381169081900361098e57611e7061348a565b92611e796134a0565b9260a43560c43560843560403660e319011261080b5761012435966001600160401b03881161099d573660238901121561099d578760040135926001600160401b03841161072157366024858b01011161072157610144356001600160401b03811161080757611eed9036906004016134f4565b9590935f516020615b0e5f395f51905f5254986001600160401b0360ff8b60401c16159a1680159081612814575b600114908161280a575b159081612801575b506127f257611f6f908a60016001600160401b03195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f52556127c2575b611922615727565b611f77615727565b611f7f6137b6565b611f876137e3565b90611f90615727565b611f98615727565b8051906001600160401b0382116127ae5781908b611fc35f516020615a2e5f395f51905f52546152a5565b601f811161275d575b5050602090601f83116001146126e1578c926126d6575b50508160011b915f199060031b1c1916175f516020615a2e5f395f51905f52555b8051906001600160401b0382116126c257819061202e5f516020615a6e5f395f51905f52546152a5565b601f8111612653575b50602090601f83116001146125d7578b926125cc575b50508160011b915f199060031b1c1916175f516020615a6e5f395f51905f52555b875f516020615a8e5f395f51905f5255875f516020615b2e5f395f51905f5255612096615727565b61209e615727565b42156125bd5781156125ae578181111561259f57600a6120be8383613802565b04831015612590576040809a81516120d683826135a5565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152612109613b87565b5f1991519020018a5260ff1960208b2016809e815f516020615ace5f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a161215e61520d565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906121a882613524565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d015561221c613780565b50895161222881613553565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b9061226d81613524565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa90811561258657906122cd918691611bc7575061385a565b806103e8026103e88104820361257257601e8a0155806101f402906101f482040361255e579061232d91601f8a015561232587519861230b8a613553565b60e4358a5260208a019461010435865260243692016135e1565b9336916138bd565b958051825170014551231950b75fc4402da1732fc9bebe198210918261254d575b50501561253e5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156125315752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b82548110156123f65782845260208085208201546001600160a01b03165f90815290869052869020805460ff191690556001016123be565b509195949094865b835181101561243e576001906001600160a01b0361241c8287613935565b5116828060a01b03165f5285602052865f208260ff19825416179055016123fe565b50925092938151916001600160401b03831161251d57600160401b831161251d576020908254848455808510612502575b500190865260208620865b8381106124e55750505050600e42910155612493575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615b0e5f395f51905f5254165f516020615b0e5f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161247a565b61251790848a528580858c200191039061528a565b5f61246f565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b6125579250615923565b5f8061234e565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f8061204d565b5f516020615a6e5f395f51905f528c52818c209250601f1984168c5b81811061263b5750908460019594939210612623575b505050811b015f516020615a6e5f395f51905f525561206e565b01515f1960f88460031b161c191690555f8080612609565b929360206001819287860151815501950193016125f3565b82811115612037575f516020615a6e5f395f51905f528c526126b4907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e602087106126ba575b50601f82910160051c03910161528a565b5f612037565b91508e6126a3565b634e487b7160e01b8a52604160045260248afd5b015190505f80611fe3565b5f516020615a2e5f395f51905f528d52818d209250601f1984168d5b818110612745575090846001959493921061272d575b505050811b015f516020615a2e5f395f51905f5255612004565b01515f1960f88460031b161c191690555f8080612713565b929360206001819287860151815501950193016126fd565b83811115611fcc575f516020615a2e5f395f51905f5261279f92528d6020812091601f860160051c91602087106127a65750601f82910160051c03910161528a565b8b5f611fcc565b91508f6126a3565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615b0e5f395f51905f525416175f516020615b0e5f395f51905f5255611f67565b63f92ee8a960e01b8952600489fd5b9050155f611f2d565b303b159150611f25565b8b9150611f1b565b50346103205780600319360112610320577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036128745760206040515f516020615aae5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b506040366003190112610320576128986134b6565b906024356001600160401b03811161098e576128b8903690600401613617565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612a75575b50612a66576128fa613b87565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612a2e575b5061293f57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615aae5f395f51905f528103612a1c5750813b15612a0a575f516020615aae5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a281518390156129f057808360206129e495519101845af43d156129e8573d916129c8836135c6565b926129d660405194856135a5565b83523d85602085013e6159cf565b5080f35b6060916159cf565b505050346129fb5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612a5e575b81612a4a602093836135a5565b81010312612a5a5751945f612926565b5f80fd5b3d9150612a3d565b63703e46dd60e11b8252600482fd5b5f516020615aae5f395f51905f52546001600160a01b0316141590505f6128ed565b5034610320578060031936011261032057612ab0613b87565b5f516020615aee5f395f51905f525460ff811615612b085760ff19165f516020615aee5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461032057602036600319011261032057612b316134b6565b612b39613b87565b5f516020615ace5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610320578060031936011261032057612b84613780565b506040612ba8612ba35f516020615ace5f395f51905f525442906154fe565b613798565b60208251918051835201516020820152f35b503461032057606036600319011261032057612bd461348a565b612bdc613bba565b612bea602435600435614057565b506001600160a01b0390811691908116612c725750335b5f516020615ace5f395f51905f5254600501546001600160a01b0316823b1561080b57604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109925761097957602082604051908152f35b612c01565b50346103205780600319360112610320576020610a426156c6565b5034610320578060031936011261032057602060015f516020615ace5f395f51905f52540154604051908152f35b50346103205780600319360112610320576020601e5f516020615ace5f395f51905f52540154604051908152f35b5034610320576060366003190112610320576001600160401b036004351161032057610100600435360360031901126103205760026024351015610320576044356001600160401b03811161098e57612d4b9036906004016134f4565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6131525760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ace5f395f51905f5254906001820154156113e3578154156130f6575b600382015460446004350135036130e75765ffffffffffff60048301541665ffffffffffff612dea60246004350161376d565b16106130d957612dff600435600401836141f9565b92612e1460a4600435016004356004016146fb565b808096925060051b046020148515171561257257612e348560051b615496565b8695865b818810612fa45750612f6a965060051b902090612e5a6004356004018661473d565b612e6960043560040187614b1b565b90612e7860246004350161376d565b93612e8760646004350161375f565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152612eec60e7826135a5565b5190209283600382015565ffffffffffff612f0b60246004350161376d565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff612f5f60246004350161376d565b169360243591614fa4565b15612f9557807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b612fb860a4600435016004356004016146fb565b8910156130c5578860061b8101358a526019880160205260ff60408b20541660038110156107d1576001036130b65760019160209161307b8b8b8e868360061b8601019261300584614730565b156130975760061b85013590525060198c01855260408e20805460ff19166002179055601c8c01805461303790613afb565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661306684614730565b1515926040519060061b8701358152a2614730565b908b60061b01358c52825360218b208186015201970196612e38565b60409260199160061b87013583520187522060ff19815416905561303a565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b61311361310760646004350161375f565b6004356004013561414f565b156131435765ffffffffffff61312d60246004350161376d565b164211612db757631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346103205760203660031901126103205761317b613b87565b600435601e5f516020615ace5f395f51905f5254015580f35b503461032057610100366003190112610320576131af61348a565b6064356001600160801b0381169081810361080b578360a43560ff8116810361098e576131da613bba565b6131e8602435600435614057565b6006015490936001600160a01b0390911691823b1561080b5761322f8480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016136fd565b038183885af161334d575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af1908115613342578591613323575b5015613314576001600160a01b039081169290811661330e575033905b5f516020615ace5f395f51905f5254600501546001600160a01b0316833b1561099d57604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109925761097957602082604051908152f35b9061329f565b631e4e7d0960e21b8452600484fd5b61333c915060203d6020116106f6576106e881836135a5565b5f613282565b6040513d87823e3d90fd5b81613357916135a5565b61072557825f61323a565b34612a5a576080366003190112612a5a5761337b61348a565b6133836134a0565b9061338c613bba565b61339a602435600435613be1565b506001600160a01b0390811691908116613427575033915b813b15612a5a57604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af191821561341c5760209261340c575b50604051908152f35b5f613416916135a5565b5f613403565b6040513d5f823e3d90fd5b916133b2565b34612a5a576020366003190112612a5a57613446613b87565b600435601f5f516020615ace5f395f51905f525401555f80f35b34612a5a575f366003190112612a5a57602090601c5f516020615ace5f395f51905f525401548152f35b604435906001600160a01b0382168203612a5a57565b606435906001600160a01b0382168203612a5a57565b600435906001600160a01b0382168203612a5a57565b35906001600160a01b0382168203612a5a57565b35906001600160801b0382168203612a5a57565b9181601f84011215612a5a578235916001600160401b038311612a5a576020808501948460051b010111612a5a57565b606081019081106001600160401b0382111761353f57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761353f57604052565b61016081019081106001600160401b0382111761353f57604052565b608081019081106001600160401b0382111761353f57604052565b90601f801991011681019081106001600160401b0382111761353f57604052565b6001600160401b03811161353f57601f01601f191660200190565b9291926135ed826135c6565b916135fb60405193846135a5565b829481845281830111612a5a578281602093845f960137010152565b9080601f83011215612a5a57816020613632933591016135e1565b90565b9060038210156136425752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106136975750505090565b82516001600160a01b031684526020938401939092019160010161368a565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606136f4604085015160a08386015260a085019061367a565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612a5a57518015158103612a5a5790565b3560ff81168103612a5a5790565b3565ffffffffffff81168103612a5a5790565b6040519061378d82613553565b5f6020838281520152565b906040516137a581613553565b602060018294805484520154910152565b604051906137c56040836135a5565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906137f26040836135a5565b60018252603160f81b6020830152565b9190820391821161380f57565b634e487b7160e01b5f52601160045260245ffd5b811561382d570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612a5a575160ff81168103612a5a5790565b60ff16604d811161380f57600a0a90565b8181029291811591840414171561380f57565b9190826040910312612a5a5760405161389681613553565b6020808294803584520135910152565b6001600160401b03811161353f5760051b60200190565b9291906138c9816138a6565b936138d760405195866135a5565b602085838152019160051b8101928311612a5a57905b8282106138f957505050565b60208091613906846134cc565b8152019101906138ed565b91908110156139215760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139215760209160051b010190565b9060405161395681613553565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103612a5a5790565b6139a45f516020615ace5f395f51905f525442906154fe565b600301905f5b8381106139ba5750505050600190565b6139c8611058828685613911565b6001600160a01b03165f9081526020849052604090205460ff16156139ef576001016139aa565b505050505f90565b60405190613a0482613524565b5f6040838281528260208201520152565b90604051613a2281613524565b60406002829480548452600181015460208501520154910152565b60405190613a4a8261358a565b5f606083604051613a5a81613553565b83815283602082015281528260208201528160408201520152565b60405190613a828261358a565b815f81525f6020820152613a94613a3d565b60408201526060613aa3613a3d565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613ad9575050613ad7925003836135a5565b565b84546001600160a01b0316835260019485019487945060209093019201613ac2565b5f19811461380f5760010190565b9190820180921161380f57565b6001600160a01b03168015613b74575f516020615a4e5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615a4e5f395f51905f52546001600160a01b03163303613ba757565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615aee5f395f51905f525416613bd257565b63d93c066560e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f206040516103008101908082106001600160401b03831117612a5a576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ace5f395f51905f52549260018401541561008257815f526019840160205260ff60405f20541660038110156136425760020361404857815f5260205260405f2060405160608101908082106001600160401b03831117612a5a57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612a5a5760018060a01b0382165f52601a84016020528060405f2055601b840161400d8154613afb565b435f198101939290841161380f5760ff1643811061419f57505f925b8381101561417b575b505f925050565b804082810361418d5750600193505050565b1561419a575f190161416b565b614174565b6141a99043613802565b9261416b565b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160051b36038313612a5a57565b903590605e1981360301821215612a5a570190565b9060808101600161420a82846141af565b9050116146ec5761421b81836141af565b9050156146c55761422b916141af565b15613921578061423a916141e4565b9161424583806141af565b9190928260051b938385046020148415171561380f5761426785969495615496565b925f945f97601a60fe19853603019501965b888a1015614628578960051b85013586811215612a5a57850161429b81613977565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036142cd82615482565b16151580614615575b614604575b6001600160a01b036142ec84613977565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b039061436b906001600160a01b03614329856134cc565b1660248901526020840135604489015261434560408501614b0e565b151560648901526001600160a01b03614360606086016134cc565b1660848901526134e0565b1660a486015261437d60a08201614b0e565b151560c486015236819003601e190160c082013581811215612a5a578201602081359101936001600160401b038211612a5a576060820236038513612a5a57819061010060e48a015252610144870193905f905b8082106145ba5750505060e082013590811215612a5a5701803560208201926001600160401b038211612a5a578160051b908136038513612a5a5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106144ad5750505050505050602093916001600160801b03848093039316905af190811561341c575f9161447b575b50816020916001938a015201990198614279565b90506020813d82116144a5575b81614495602093836135a5565b81010312612a5a57516001614467565b3d9150614488565b919395979850919395601f19848203018752873582811215612a5a578301602081013582526001600160a01b036144e6604083016134cc565b1660208301526060810135603e193683900301811215612a5a578101602081013591906040016001600160401b038311612a5a578236038113612a5a57829060e060408601528160e08601526101008501375f61010083850101526001600160801b03614555608083016134e0565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612a5a578360209361459760e086956101009560a060019a015201614b0e565b151560c0830152601f80199101160101990197019401918a989796959391614436565b90919460608060019288358152838060a01b036145d960208b016134cc565b1660208201526001600160801b036145f360408b016134e0565b1660408201520196019201906143d1565b905061460f81615482565b906142db565b5061462260a08401614730565b156142d6565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a1013580614696575b604051916020830193845260408301526060820152606081526146906080826135a5565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a161466c565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918160061b36038313612a5a57565b358015158103612a5a5790565b60c08201600161474d82856141af565b905011614acd5761475e81846141af565b9050156146c55761476f90836141af565b1561392157803590607e1981360301821215612a5a570191606083019060206147978361376d565b91019065ffffffffffff806147ab8461376d565b1691161015614abe576147bd8261376d565b65ffffffffffff80600286015460201c16911610614aaf5761480365ffffffffffff6147fc6147f6826147ef8761376d565b16876154bb565b9361376d565b16846154bb565b1115614aa0576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446148498361484189896141e4565b01358b613b09565b604051948593849263095ea7b360e01b84528c600485015260248401525af190811561341c575f91614a81575b5015614a72575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af194851561341c575f95614a3a575b50906148ce916141e4565b916148d88261376d565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612a5a578101602081359101936001600160401b038211612a5a578160061b36038513612a5a5760606044890152819052869360c485019392915f5b818110614a0257505050836020959365ffffffffffff829484895f9601356064860152614971604060018060a01b0392016134cc565b16608485015216602483015203925af191821561341c575f926149cc575b506149999061376d565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526146906066826135a5565b9091506020813d6020116149fa575b816149e8602093836135a5565b81010312612a5a57519061499961498f565b3d91506149db565b919550919293604080600192838060a01b03614a1d8a6134cc565b16815260208901356020820152019601910191889594939261493b565b919094506020823d602011614a6a575b81614a57602093836135a5565b81010312612a5a579051936148ce6148c3565b3d9150614a4a565b6367b9145160e01b5f5260045ffd5b614a9a915060203d6020116106f6576106e881836135a5565b5f614876565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612a5a57018035906001600160401b038211612a5a57602001918136038313612a5a57565b35908115158203612a5a57565b9060e081016001614b2c82846141af565b905011614f9557614b3d81836141af565b9050156146c557614b4d916141af565b156139215780359060be1981360301821215612a5a570160808101614b7281836141af565b905015614f865765ffffffffffff600284015460201c1691614b948342613802565b614ba360168601548092613823565b9360a0830135946001810180911161380f578503614f7757614bc885614bce9361386b565b90613b09565b93614bdd601782015486613802565b4210614f6857614bec906154e3565b9160058301934285541015614f5957614c0483614730565b9260208101906060810193612325614c40614c1f8785614adc565b9190614c2b85876141af565b949091614c38368a61387e565b9436916135e1565b97614ea0575b50505f989798976003600489019801985b8854811015614c8e575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614c57565b5090919293949596985f5b8851811015614cda576001906001600160a01b03614cb7828c613935565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614c99565b50929598909396919497508151916001600160401b03831161353f57600160401b831161353f576020908254848455808510614e85575b5001905f5260205f205f5b838110614e685750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612a5a576040519260a08401908482106001600160401b0383111761353f57614d9091604052614d8784614b0e565b8552369061387e565b9460208401958652356001600160401b038111612a5a57614db49036908401613617565b604084015235906001600160401b038211612a5a570136601f82011215612a5a57614de69036906020813591016138bd565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110614e465750505081520380825261469090602001826135a5565b82516001600160a01b0316855286955060209485019490920191600101614e29565b82516001600160a01b031681830155602090920191600101614d1c565b614e9a90845f528580855f200191039061528a565b5f614d11565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182614f48575b505015614f395751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff0918215614f2c57526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614c46565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b614f529250615923565b5f80614ec6565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16614fc342846154bb565b614fdb614fd56016860154809361386b565b83613b09565b9182841080806151f7575b156151c5575083106151b757614ffc9083613b09565b106151a85761500c905b826154fe565b94601960f81b5f523060601b60025260165260365f20936002811015613642578061509d5750506001810361508e57156139215761504d8161505492614adc565b36916135e1565b91606083510361507f578260206136329401516060604083015192015192600181549101549061551a565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146150b05750505050505f90565b6150d590600860048796970154910154906001600160801b038260801c921690615457565b925f9260035f9201915b8681101561519d576151056105886150ff61504d8460051b860186614adc565b866158e9565b6001600160a01b0381165f9081526020859052604090205460ff16615130575b506001905b016150df565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15615175575060019061512a565b94600161518392965d613afb565b93858514615191575f615125565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116151e85761500c926151e0575b50615006565b90505f6151da565b6347860b9760e01b5f5260045ffd5b50615206601887015485613b09565b4210614fe6565b6152156139f7565b5063ffffffff43116152725765ffffffffffff421161525a5760405161523a81613524565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061529857505050565b5f8282015560010161528c565b90600182811c921680156152d3575b60208310146152bf57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916152b4565b604051905f825f516020615a2e5f395f51905f5254916152fc836152a5565b808352926001811690811561538b5750600114615320575b613ad7925003836135a5565b505f516020615a2e5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b81831061536f575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615357565b60209250613ad794915060ff191682840152151560051b820101615314565b604051905f825f516020615a6e5f395f51905f5254916153c9836152a5565b808352926001811690811561538b57506001146153ec57613ad7925003836135a5565b505f516020615a6e5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b81831061543b575050906020613ad792820101615314565b6020919350806001915483858901015201910190918492615423565b6001600160801b0380921602911661546f8183613823565b91811561382d5706156136325760010190565b356001600160801b0381168103612a5a5790565b6040519190601f01601f191682016001600160401b03811183821017612a5a57604052565b60166154da6136329365ffffffffffff600285015460201c1690613802565b91015490613823565b6154ed4282615889565b156154f85760090190565b600f0190565b906155099082615889565b1561551457600f0190565b60090190565b92939194906155298587615923565b156156bc5782156156bc5770014551231950b75fc4402da1732fc9bebe198310156156bc576001169061010e61555e81615496565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c0908801561519d5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6156ce615946565b6156d661599d565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261469060c0826135a5565b60ff5f516020615b0e5f395f51905f525460401c161561574357565b631afcd79f60e31b5f5260045ffd5b61575a613a3d565b506002810154600582015460405192909161579a916004916001600160a01b03166157848661358a565b61578d82613798565b8652602086015201613aa8565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161581e579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561341c575f516001600160a01b0381161561581457905f905f90565b505f906001905f90565b5050505f9160039190565b6004811015613642578061583b575050565b600181036158525763f645eedf60e01b5f5260045ffd5b6002810361586d575063fce698f760e01b5f5260045260245ffd5b6003146158775750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146158da578181841093119182159111159181906158d3575b156158c457826158be57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816158af565b63f26224af60e01b5f5260045ffd5b8151919060418303615919576159129250602082015190606060408401519301515f1a906157a7565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b61594e6152dd565b805190811561595e576020012090565b50505f516020615a8e5f395f51905f525480156159785790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6159a56153aa565b80519081156159b5576020012090565b50505f516020615b2e5f395f51905f525480156159785790565b906159f357508051156159e457602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615a24575b615a04575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156159fc56fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1553:47875:165:-:0;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;49133:19;;;1553:47875;49133:38;1553:47875;;-1:-1:-1;;;;;49242:9:165;1553:47875;49270:9;1553:47875;;49330:10;-1:-1:-1;1553:47875:165;;;49358:28;;;;;1553:47875;;;;;;49358:42;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;15023:40;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;15023:40:165;:52;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;13147:34;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;2357:1:29;1553:47875:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1553:47875:165;;;;;;;;;;;;;;;;19936:52;-1:-1:-1;;;;;;;;;;;1553:47875:165;19936:52;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;25900:11:165;;:16;1553:47875;;-1:-1:-1;;;;;;;;;;;1553:47875:165;25996:19;1553:47875;25996:19;;1553:47875;25996:38;1553:47875;;26089:19;;;1553:47875;;;;;;;;;;;;;;;;;;;;;26199:29;26269:27;;;;;26411:39;;;1553:47875;;26531:13;;26546:22;;;;;;26825:15;;;:28;1553:47875;;;;;27089:29;;;-1:-1:-1;;;;;2670:66:165;;;;27089:29;1553:47875;2670:66;7051:25:77;2670:66:165;7105:8:77;2670:66:165;;;;;;;;;27089:29;;1553:47875;;27089:29;;;;;;:::i;:::-;1553:47875;27079:40;;1553:47875;;;;;;;;;;;;972:64:36;1553:47875:165;;;;;;;;;;;;;;;26938:261;1553:47875;26938:261;;1553:47875;2670:66;1553:47875;;2670:66;1553:47875;2670:66;;1553:47875;2670:66;1553:47875;2670:66;;1553:47875;;2670:66;;1553:47875;;2670:66;;1553:47875;2670:66;1553:47875;2670:66;;1553:47875;;26938:261;;;1553:47875;26938:261;;:::i;:::-;1553:47875;26915:294;;3980:23:40;;:::i;:::-;3993:249:80;1553:47875:165;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1553:47875:165;;;3993:249:80;1553:47875:165;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;27343:20;;;2670:66;;1553:47875;;;;27521:100;1553:47875;;;;;27451:32;;;1553:47875;;27521:48;27572:49;27521:48;;;1553:47875;27572:49;;1553:47875;27521:100;;:::i;:::-;27635:77;;;;;;1553:47875;;-1:-1:-1;;;27635:77:165;;-1:-1:-1;;;;;1553:47875:165;;;27635:77;;1553:47875;27675:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27635:77;;;;;26526:223;-1:-1:-1;1553:47875:165;;-1:-1:-1;;;27748:57:165;;-1:-1:-1;;;;;1553:47875:165;;;;27748:57;;1553:47875;27675:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;27748:57;;;;;;;;;;;;;;26526:223;1553:47875;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;23337:19;1553:47875;;;;;;;27951:32;;;1553:47875;;;-1:-1:-1;;;1553:47875:165;;;;;27748:57;;;;1553:47875;27748:57;1553:47875;27748:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:47875;;;;;;;;;27635:77;;;;;;;;:::i;:::-;1553:47875;;27635:77;;;;;1553:47875;;;;27635:77;1553:47875;;;2670:66;-1:-1:-1;;;2670:66:165;;1553:47875;;;;;2670:66;;;1553:47875;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;26570:3;26616:11;;26649:14;;;;;;:::i;:::-;1553:47875;26649:34;26704:14;;;;;:::i;:::-;1553:47875;;;;;26570:3;;1553:47875;;26531:13;;1553:47875;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;26238:155;26363:19;;;:::i;:::-;26238:155;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;35540:37:165;1553:47875;;;;35540:37;:::i;:::-;35629:32;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;35677:96;;;;;;1553:47875;;;;;;;;;;;;35677:96;;1553:47875;;;;;;;;35717:4;;35697:10;1553:47875;35677:96;;;:::i;:::-;;;;;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;35809:79:165;;35697:10;1553:47875;35809:79;;1553:47875;35717:4;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;35809:79;;;;;;;;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;36004:70;1553:47875;;;;35697:10;;36004:70;;35947:238;;;;;1553:47875;;-1:-1:-1;;;35947:238:165;;-1:-1:-1;;;;;1553:47875:165;;;;35947:238;;1553:47875;;;;;;;;;;;;;;;;;;;;;;35947:238;;;;;;;;;36004:70;1553:47875;;;;;;;;35947:238;;;;;;:::i;:::-;1553:47875;;35947:238;;;1553:47875;;;;35947:238;1553:47875;;;;;;;;;35947:238;1553:47875;;;36004:70;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;35809:79;;;;1553:47875;35809:79;1553:47875;35809:79;;;;;;;:::i;:::-;;;;;1553:47875;;;;;;;;;35677:96;;;;;:::i;:::-;1553:47875;;35677:96;;;;1553:47875;;;;;;;;;;;;;;16468:211;-1:-1:-1;;;;;;;;;;;1553:47875:165;16565:25;1553:47875;28658:37:169;28679:15;28658:37;;:::i;:::-;16506:38:165;1553:47875;16565:25;;1553:47875;;-1:-1:-1;;;;;1553:47875:165;;;;;16468:211;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;16082:41:165;1553:47875;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12604:23;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;15511:25;-1:-1:-1;;;;;;;;;;;1553:47875:165;15511:25;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12336:40;1553:47875;;;;;;;;;;;;;;;;;;;;;;;11746:32;-1:-1:-1;;;;;;;;;;;1553:47875:165;11746:32;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;15821:41:165;1553:47875;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;:::i;:::-;-1:-1:-1;33999:28:169;34006:20;;;33999:28;:::i;:::-;34085:20;34078:28;34085:20;;;34078:28;:::i;:::-;10519:25:165;;;1553:47875;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;34123:241:169;;1553:47875:165;;34123:241:169;;1553:47875:165;;34123:241:169;;1553:47875:165;10908:33;;;1553:47875;10976:39;;;;1553:47875;11044:33;;;1553:47875;;;11121:48;;;1553:47875;11214:49;;;;1553:47875;;;;;;;;:::i;:::-;;;;;;:::i;:::-;34006:20:169;10602:19:165;;1553:47875;;;10908:33;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10657:27;;;1553:47875;;;;;;;;;;;;;;10562:712;;1553:47875;;;;;;;;;:::i;:::-;10713:20;;;1553:47875;-1:-1:-1;;;;;1553:47875:165;;;2288:3;;11214:49;1553:47875;;;;;;;;2288:3;34085:20:169;1553:47875:165;;;;;;;;2288:3;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10816:22;;;1553:47875;:::i;:::-;10562:712;1553:47875;10562:712;;1553:47875;;;10863:16;;1553:47875;;;:::i;:::-;10562:712;1553:47875;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;10562:712;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;17434:22;-1:-1:-1;;;;;;;;;;;1553:47875:165;17434:22;1553:47875;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47875:165;;;;18671:28;18603:13;18671:28;;18598:129;18618:23;;;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;18671:28;1553:47875;;;18643:3;18700:15;;;18671:28;18700:15;;;;:::i;:::-;;:::i;:::-;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;18662:54;;;;:::i;:::-;1553:47875;;18603:13;;1553:47875;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;14144:77;;28658:37:169;;28679:15;;28658:37;:::i;:::-;14144:77:165;1553:47875;;;9268:329:171;1553:47875:165;;;;;9268:329:171;;;;;;;;;;;;;;;;;;;;1553:47875:165;9268:329:171;;;;1553:47875:165;9268:329:171;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20174:19;-1:-1:-1;;;;;;;;;;;1553:47875:165;20174:19;1553:47875;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18943:36;-1:-1:-1;;;;;;;;;;;1553:47875:165;18943:36;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;18196:31;-1:-1:-1;;;;;;;;;;;1553:47875:165;18196:31;:43;1553:47875;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;23241:11:165;;:16;1553:47875;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;23337:19;;1553:47875;23337:38;1553:47875;;23430:19;;;1553:47875;;;;;;;;;;;;;;;;;;;;;23581:32;;;1553:47875;23643:48;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;23705:78;;;;;1553:47875;;-1:-1:-1;;;23705:78:165;;23725:10;1553:47875;23705:78;;1553:47875;23745:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23705:78;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;23819:61:165;;23725:10;1553:47875;23819:61;;1553:47875;23745:4;1553:47875;;;;;;;;;;;;;;;;;;;;;;23819:61;1553:47875;23705:78;;;;;:::i;:::-;1553:47875;;23705:78;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;21933:19;;;1553:47875;;;;;22040:26;;1553:47875;;;22030:37;;22086:25;;1553:47875;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;12876:35;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17203:25;-1:-1:-1;;;;;;;;;;;1553:47875:165;17203:25;1553:47875;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;5647:18:40;:43;;;1553:47875:165;;;;;;;;:::i;:::-;;;;:::i;:::-;;2446:3;1553:47875;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;;1553:47875:165;;;;5870:4:40;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;5647:43:40;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;5669:21:40;5647:43;;1553:47875:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;3319:20:37;1553:47875:165;;;966:10:34;1553:47875:165;;3319:20:37;1553:47875:165;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:47875:165;;;;17903:19;17838:13;17903:19;;17833:120;17853:20;;;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;17875:3;17929:12;;;;;:::i;:::-;1553:47875;;;;;;;;;;;;17894:48;;;;:::i;:::-;1553:47875;;;;;;;;;17838:13;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;:::i;:::-;;;;972:64:36;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;12030:30;-1:-1:-1;;;;;;;;;;;1553:47875:165;12030:30;1553:47875;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;3975:40:29;1553:47875:165;;3975:40:29;1553:47875:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;6429:44:30;;;;;1553:47875:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6959:1:30;;-1:-1:-1;;;;;1553:47875:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1553:47875:165;;:::i;:::-;2224:17;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;3676:10:40;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;9356:17;;:::i;:::-;2288:3;;6591:4:30;9334:19:165;;1553:47875;3652:7:40;2288:3:165;;;1553:47875;;2288:3;;;1553:47875;2288:3;1553:47875;2288:3;;;;;1553:47875;2288:3;;;;;;;;;;1553:47875;;;;;;;:::i;:::-;;;;9413:57;1553:47875;9383:27;3676:10:40;9383:27:165;;1553:47875;;;;;;;;;;;;;28658:37:169;28679:15;28658:37;;:::i;:::-;9523:38:165;1553:47875;;;9480:33;;;1553:47875;;2203:1:169;;;;;;;;1553:47875:165;;;;;;;9623:32;;;1553:47875;;;;;;;;;;;9610:57;;;;;;;;9604:63;9610:57;;;;;1553:47875;9604:63;;:::i;:::-;2366:5;;;;;;;;;;;9677:48;;;1553:47875;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;1553:47875;9795:49;1553:47875;-1:-1:-1;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6654:20:30;1553:47875:165;;;6943:1;1553:47875;;6654:20:30;1553:47875:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;;;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;;;;9610:57;;;;1553:47875;9610:57;1553:47875;9610:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;3676:10:40;1553:47875:165;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;6943:1;1553:47875;;;;;;;;;;;;6943:1;1553:47875;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47875:165;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;6943:1;1553:47875;;;;;;;;;;;6943:1;1553:47875;;;;;:::i;:::-;;;;6425:105:30;-1:-1:-1;;;6496:23:30;;1553:47875:165;;6496:23:30;6429:44;6943:1:165;1553:47875;;-1:-1:-1;;;;;1553:47875:165;6448:25:30;;6429:44;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;4301:16:30;1553:47875:165;;4724:16:30;;:34;;;;1553:47875:165;;4788:16:30;:50;;;;1553:47875:165;4853:13:30;:30;;;;1553:47875:165;4849:91:30;;;6959:1;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;4977:67:30;;1553:47875:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:47875:165;;:::i;:::-;2224:17;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3676:10:40;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;6891:76:30;;:::i;:::-;;;:::i;:::-;4821:15:165;:19;2288:3;;4879:21;;2288:3;;4946:32;;;2288:3;;;5227:2;5191:32;;;;:::i;:::-;2288:3;5171:58;;2288:3;;;1553:47875;;;;;;;;;:::i;:::-;2288:3;1553:47875;;;2288:3;;;;;2303:62:29;;:::i;:::-;1553:47875:165;;1800:178:73;;;;;;;1553:47875:165;;;1800:178:73;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;48851:24;;;5385:17;;:::i;:::-;2288:3;;1553:47875;5363:19;;1553:47875;3652:7:40;2288:3:165;;;1553:47875;2288:3;;;1553:47875;;2288:3;;;;;;1553:47875;2288:3;;;;;;;;;;;1553:47875;;;;;;:::i;:::-;2288:3;;;-1:-1:-1;;;;;1553:47875:165;;;;5435:52;;2288:3;;;1553:47875;;;5435:52;;;;2288:3;;;5412:20;;;;;1553:47875;;;;;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;2288:3;;;1553:47875;;;;;;;;2288:3;;;1553:47875;;;;;;;;;;2203:1:169;5497:25:165;;;2203:1:169;1553:47875:165;;:::i;:::-;;;;;;;:::i;:::-;1855:13:169;1553:47875:165;;2383:18:169;1553:47875:165;23662:89:169;;;1553:47875:165;5685:22;;;1553:47875;;-1:-1:-1;;;;;;2203:1:169;;;;;1553:47875:165;;;;;;;;;:::i;:::-;;;;;5772:65;;1553:47875;;;5772:65;1553:47875;5753:16;;;1553:47875;2288:3;2203:1:169;;1553:47875:165;2203:1:169;;;1553:47875:165;5847:33;;;2203:1:169;;-1:-1:-1;;2203:1:169;1553:47875:165;;;2203:1:169;;;1553:47875:165;;-1:-1:-1;;;5951:37:165;;1553:47875;;;;;5951:37;;1553:47875;5951:37;1553:47875;5951:37;;;;;;;;5945:43;5951:37;;;;;5945:43;;:::i;:::-;2366:5;;;;;;;;;;5998:48;;;1553:47875;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;6116:49;2446:3;6116:49;1553:47875;6116:49;;1553:47875;2446:3;1553:47875;;;;;;:::i;:::-;;;2446:3;;1553:47875;2446:3;;1553:47875;2446:3;1553:47875;2446:3;;1553:47875;;;;2446:3;:::i;:::-;1553:47875;;2446:3;;:::i;:::-;2203:1:169;;;;;1145:66:27;;1837:24:26;;:71;;;;1553:47875:165;;;;;;2203:1:169;6308:37:165;;;1553:47875;2203:1:169;5227:2:165;1553:47875;;;1705:1673:171;;;;;;;;;;;;;;;;5685:22:165;1705:1673:171;;;;;;;;;;;47733:52:165;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;1705:1673:171;;47979:15:165;;;;47862:13;47881:16;;;;47862:13;47906:3;1553:47875;;47877:27;;;;;1553:47875;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;47862:13;;47877:27;;;;;;;48039:13;48081:3;1553:47875;;48054:25;;;;;1553:47875;;-1:-1:-1;;;;;48121:17:165;1553:47875;48121:17;;:::i;:::-;2288:3;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;48039:13;;48054:25;;;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;48034:163;1553:47875;;;;;;;;;;;;;;;4821:15;;;;48249:28;4821:15;48249:28;;1553:47875;5064:101:30;;1553:47875:165;;;5064:101:30;1553:47875:165;5140:14:30;1553:47875:165;-1:-1:-1;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;5140:14:30;1553:47875:165;;;2288:3;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;1705:1673:171;;;;1553:47875:165;1705:1673:171;;1553:47875:165;-1:-1:-1;;;1553:47875:165;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;2366:5:165;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;1553:47875;2288:3;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:47875;2288:3;1553:47875;2288:3;;5951:37;1553:47875;;;;;;;;;2288:3;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:47875;2288:3;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;3676:10:40;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;4977:67:30;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1553:47875:165;4906:23:30;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1553:47875:165;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1553:47875:165;4815:4:60;4807:23;4803:145;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1553:47875:165;;4908:29:60;1553:47875:165;-1:-1:-1;1553:47875:165;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1553:47875:165;4392:4:60;4384:23;;;:120;;;;1553:47875:165;4367:251:60;;;2303:62:29;;:::i;:::-;1553:47875:165;;-1:-1:-1;;;5865:52:60;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;5865:52:60;;;;;;;;1553:47875:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1553:47875:165;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;;-1:-1:-1;;;;;;;;;;;5959:40:60;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;2407:36:53;;;;1553:47875:165;;;;2458:15:53;:11;;4065:25:66;;1553:47875:165;4107:55:66;4065:25;;;;;;;1553:47875:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1553:47875:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1553:47875:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1553:47875:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1553:47875:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1553:47875:165;;;6026:34:60;;5865:52;;;;1553:47875:165;5865:52:60;;1553:47875:165;5865:52:60;;;;;;1553:47875:165;5865:52:60;;;:::i;:::-;;;1553:47875:165;;;;;5865:52:60;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1553:47875:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1553:47875:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;2971:9:37;2967:62;;1553:47875:165;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;3627:22:37;1553:47875:165;;;966:10:34;1553:47875:165;;3627:22:37;1553:47875:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1553:47875:165;3003:15:37;;1553:47875:165;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:47875:165;20709:23;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;1553:47875:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;29254:36:165;1553:47875;;;;29254:36;:::i;:::-;-1:-1:-1;;;;;;1553:47875:165;;;;29341:70;1553:47875;;;;29378:10;;29341:70;-1:-1:-1;;;;;;;;;;;1553:47875:165;12604:23;;1553:47875;-1:-1:-1;;;;;1553:47875:165;29301:134;;;;;1553:47875;;-1:-1:-1;;;29301:134:165;;-1:-1:-1;;;;;1553:47875:165;;;;29301:134;;1553:47875;;;;;;;;;;;;;;;;;;29301:134;1553:47875;;29301:134;;;;;;;;;1553:47875;;;;;;;;29341:70;;;1553:47875;;;;;;;;;;;;;;3980:23:40;;:::i;1553:47875:165:-;;;;;;;;;;;;;;11492:22;-1:-1:-1;;;;;;;;;;;1553:47875:165;11492:22;1553:47875;;;;;;;;;;;;;;;;;;;;;19536:51;-1:-1:-1;;;;;;;;;;;1553:47875:165;19536:51;1553:47875;;;;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1553:47875:165;36916:19;1948:4:38;36916:19:165;;1553:47875;36916:38;1553:47875;;;;37154:20;37150:295;;1553:47875;37558:27;;;1553:47875;;;;37594:33;1553:47875;37558:69;1553:47875;;;;37693:37;;1553:47875;;;37734:21;1553:47875;;;37734:21;;:::i;:::-;1553:47875;-1:-1:-1;1553:47875:165;;37824:28;1553:47875;;;;37824:28;;:::i;:::-;1553:47875;40813:22;;1553:47875;;40813:22;1553:47875;;;;40813:22;:::i;:::-;2366:5;;;;;;;;1553:47875;2366:5;;;;;;;40948:40;2366:5;;;40948:40;:::i;:::-;40998:18;;;41047:22;;;;;;2366:5;38622:146;2366:5;;;;1083:131:25;;1553:47875:165;37964:30;1553:47875;;;;37964:30;;:::i;:::-;38040:33;1553:47875;;;;38040:33;;:::i;:::-;1553:47875;38173:21;1553:47875;;;37734:21;38173;:::i;:::-;1553:47875;38255:13;;1553:47875;;38255:13;;:::i;:::-;1553:47875;;;20171:303:169;1553:47875:165;20171:303:169;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;37594:33;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20171:303:169;;;;;;:::i;:::-;1553:47875:165;20148:336:169;;37558:27:165;;;;;1553:47875;;38527:21;1553:47875;;;37734:21;38527;:::i;:::-;1553:47875;;;;37693:37;;1553:47875;;;;37693:37;;1553:47875;38564:26;1553:47875;;;;;;38564:26;1553:47875;38733:21;1553:47875;;;37734:21;38733;:::i;:::-;1553:47875;;;;38622:146;;:::i;:::-;2113:66;;;3556:68:76;757:66:38;3556:68:76;1553:47875:165;;2113:66;-1:-1:-1;;;2113:66:165;;1553:47875;;2113:66;41071:3;41133:22;40813;1553:47875;;40813:22;1553:47875;;;;41133:22;:::i;:::-;1553:47875;;;;;;;;;;;;;41198:19;;;1553:47875;;;;;;;;37558:27;1553:47875;;;;;1948:4:38;41198:79:165;1553:47875;;1948:4:38;1553:47875:165;;;41776:17;1553:47875;;;;;;;;;41356:17;;;;;:::i;:::-;;;;1553:47875;;;;;;;-1:-1:-1;41198:19:165;;;1553:47875;;;;;;;-1:-1:-1;;1553:47875:165;;;;;41479:39;;;1553:47875;;41479:41;;;:::i;:::-;1553:47875;;41352:270;41674:17;41641:51;41674:17;;;;:::i;:::-;1553:47875;;;;;;;;;;;;;41641:51;41776:17;:::i;:::-;1553:47875;;;;;;17874:159:169;;;;;;;4093:83:22;;;;1553:47875:165;41071:3;1553:47875;41032:13;;;41352:270;1553:47875;;41198:19;1553:47875;;;;;;;;41198:19;1553:47875;;;;;;;;;;41352:270;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;;2288:3;1553:47875;;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;37150:295;37198:56;37240:13;;1553:47875;;37240:13;;:::i;:::-;1553:47875;;;;;37198:56;:::i;:::-;1553:47875;;;;37385:21;1553:47875;;;37385:21;;:::i;:::-;1553:47875;37367:15;:39;37150:295;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;;-1:-1:-1;;;1553:47875:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1553:47875:165;1789:30:38;;1553:47875:165;;;;;;;-1:-1:-1;;1553:47875:165;;;;2303:62:29;;:::i;:::-;1553:47875:165;;21027:51;-1:-1:-1;;;;;;;;;;;1553:47875:165;21027:51;1553:47875;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;31297:36:165;1553:47875;;;;31297:36;:::i;:::-;31385:32;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;31433:96;;;;;;1553:47875;;;;;;;;;;;;31433:96;;1553:47875;;;;;;;;31473:4;;31453:10;1553:47875;31433:96;;;:::i;:::-;;;;;;;;;1553:47875;-1:-1:-1;;1553:47875:165;;-1:-1:-1;;;31565:79:165;;31453:10;1553:47875;31565:79;;1553:47875;31473:4;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;31565:79;;;;;;;;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;31760:70;1553:47875;;;;31453:10;;31760:70;;-1:-1:-1;;;;;;;;;;;1553:47875:165;31385:20;12604:23;1553:47875;-1:-1:-1;;;;;1553:47875:165;31703:236;;;;;1553:47875;;-1:-1:-1;;;31703:236:165;;-1:-1:-1;;;;;1553:47875:165;;;;31703:236;;1553:47875;;;;;;;;;;;;;;31703:236;1553:47875;;;31703:236;;;;;;;;;;1553:47875;;;;;;;;31760:70;;;;1553:47875;-1:-1:-1;;;1553:47875:165;;;;;31565:79;;;;1553:47875;31565:79;1553:47875;31565:79;;;;;;;:::i;:::-;;;;;1553:47875;;;;;;;;;31433:96;;;;;:::i;:::-;1553:47875;;31433:96;;;;1553:47875;;;;;;-1:-1:-1;;1553:47875:165;;;;;;:::i;:::-;;;:::i;:::-;1944:72:37;;;:::i;:::-;33365:37:165;1553:47875;;;;33365:37;:::i;:::-;-1:-1:-1;;;;;;1553:47875:165;;;;33453:70;1553:47875;;;;33490:10;;33453:70;;33413:136;;;;;1553:47875;;-1:-1:-1;;;33413:136:165;;-1:-1:-1;;;;;1553:47875:165;;;;33413:136;;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;33413:136;1553:47875;-1:-1:-1;33413:136:165;;;;;;;;1553:47875;33413:136;;;33453:70;1553:47875;;;;;;;33413:136;1553:47875;33413:136;;;:::i;:::-;1553:47875;33413:136;;;1553:47875;;;;;;;;;33453:70;;;;1553:47875;;;;;;-1:-1:-1;;1553:47875:165;;;;2303:62:29;;:::i;:::-;1553:47875:165;;21424:52;-1:-1:-1;;;;;;;;;;;1553:47875:165;21424:52;1553:47875;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;19201:42;-1:-1:-1;;;;;;;;;;;1553:47875:165;19201:42;1553:47875;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;2288:3;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::o;:::-;2288:3;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;-1:-1:-1;;1553:47875:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:47875:165;;;;:::o;2224:17::-;1553:47875;;;;;;;:::i;:::-;2224:17;1553:47875;;-1:-1:-1;;;1553:47875:165;2224:17;;;:::o;2288:3::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2203:1:169;;;;;;;;;;1553:47875:165;;;;;;;2203:1:169;:::o;:::-;1553:47875:165;;2203:1:169;;;;;;;;:::o;2366:5:165:-;;;;;;;;;;;;;;;;:::o;2446:3::-;;;;;;;;;;;1553:47875;;;;:::i;:::-;2446:3;;;1553:47875;;;2446:3;;;1553:47875;2446:3;;;:::o;:::-;-1:-1:-1;;;;;2446:3:165;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:47875;;;;;;;:::i;:::-;2446:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:47875;;;;;:::i;:::-;2446:3;;;;;;;;1553:47875;;;;;;;;;;;;:::o;:::-;2288:3;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;14401:375::-;28658:37:169;-1:-1:-1;;;;;;;;;;;1553:47875:165;28679:15:169;28658:37;;:::i;:::-;14653:22:165;;;1553:47875;14605:22;;;;;;14758:11;;;;1553:47875;14401:375;:::o;14629:3::-;14676:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;14652:39;14648:90;;1553:47875;;14590:13;;14648:90;14711:12;;;;1553:47875;14711:12;:::o;1553:47875::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:47875:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;:::o;2670:66::-;;;;;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1553:47875:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1553:47875:165;;-1:-1:-1;;;;;;1553:47875:165;;;;;;;-1:-1:-1;;;;;1553:47875:165;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1553:47875:165;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1553:47875:165;;-1:-1:-1;2763:40:29;2709:128:37;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;38872:934:165;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;39048:19;;;;1553:47875;39048:38;1553:47875;;;;;39141:19;;;1553:47875;;;;;;;;;;;;;;39179:24;39141:62;1553:47875;;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;;3543:209:25;1553:47875:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1651:6:167;1052:614:22;1553:47875:165;1052:614:22;1888:66:167;4093:83:22;;1998:66:167;1553:47875:165;4093:83:22;;;2108:66:167;1553:47875:165;4093:83:22;;;2218:66:167;2210:6;4093:83:22;;;2328:66:167;2320:6;4093:83:22;;;2438:66:167;2430:6;4093:83:22;;;2548:66:167;2540:6;4093:83:22;;;2658:66:167;2650:6;4093:83:22;;;2768:66:167;2760:6;4093:83:22;;;2878:66:167;2870:6;4093:83:22;;;2988:66:167;2980:6;4093:83:22;;;3098:66:167;3090:6;4093:83:22;;;3208:66:167;3200:6;4093:83:22;;;3318:66:167;3310:6;4093:83:22;;;3428:66:167;3420:6;4093:83:22;;;3538:66:167;3530:6;4093:83:22;;;3648:66:167;3640:6;4093:83:22;;;3758:66:167;3750:6;4093:83:22;;;3868:66:167;3860:6;4093:83:22;;;3978:66:167;3970:6;4093:83:22;;;4088:66:167;4080:6;4093:83:22;;;4198:66:167;4190:6;4093:83:22;;;39601:4:165;4536:2:167;1553:47875:165;4437:66:167;;;;;4436:103;4416:6;4093:83:22;;;4592:66:167;4584:6;4093:83:22;;;39478:135:165;4670:150:167;;;;;;1553:47875:165;;;;;;;-1:-1:-1;1553:47875:165;39624:28;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;39681:33;;;:35;1553:47875;;39681:35;:::i;:::-;1553:47875;;;;-1:-1:-1;;;;;1553:47875:165;;;;39732:32;;1553:47875;;39732:32;39775:24;38872:934;:::o;1553:47875::-;;;;;;;;;38872:934;;;;-1:-1:-1;;;;;;;;;;;1553:47875:165;39048:19;31328:4;39048:19;;1553:47875;39048:38;1553:47875;;;-1:-1:-1;1553:47875:165;39141:19;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;;;;;;;;39179:24;39141:62;1553:47875;;3543:209:25;-1:-1:-1;3543:209:25;1553:47875:165;3543:209:25;1553:47875:165;-1:-1:-1;3543:209:25;1553:47875:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1545:4:168;1052:614:22;1553:47875:165;1052:614:22;2041:66:168;4093:83:22;;39540:4:165;1052:614:22;1553:47875:165;2187:66:168;2186:105;1553:47875:165;4093:83:22;;;2342:66:168;1553:47875:165;4093:83:22;;;-1:-1:-1;2420:150:168;;;;;;1553:47875:165;;;;;;;-1:-1:-1;1553:47875:165;39624:28;;;1553:47875;;;;-1:-1:-1;1553:47875:165;;39681:33;;;:35;1553:47875;;39681:35;:::i;22859:532:169:-;22984:12;-1:-1:-1;;2288:3:165;;;22859:532:169;;2288:3:165;;;;1553:47875;;22984:12:169;23024:22;;22984:12;;23024:50;1553:47875:165;23024:50:169;;23108:8;;;;;;23084:278;-1:-1:-1;1553:47875:165;;-1:-1:-1;;22859:532:169:o;23089:17::-;23147:12;;23177:11;;;;;-1:-1:-1;22999:1:169;;-1:-1:-1;;;23208:11:169:o;23173:119::-;23244:8;23240:52;;-1:-1:-1;;1553:47875:165;23089:17:169;;23240:52;23272:5;;23024:50;23053:21;22984:12;;23053:21;:::i;:::-;23024:50;;;1553:47875:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;39812:846::-;;39940:22;;;39973:1;39940:22;;;;:::i;:::-;:34;;;1553:47875;;40017:22;;;;:::i;:::-;:34;;;40013:177;;40244:22;;;:::i;:::-;1553:47875;;;;;;;:::i;:::-;40334:23;;;;;:::i;:::-;2366:5;;;;1553:47875;2366:5;;;;;45846:2;2366:5;;;;;;;45892:36;;;;;;:::i;:::-;45938:18;1553:47875;45972:13;1553:47875;;46107:28;1553:47875;;;;;;46107:28;;45967:685;46007:3;45987:18;;;;;;1553:47875;;;;;;;;;;;;;;46136:18;;;:::i;:::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;46107:53;1553:47875;;;39940:22;46230:25;;-1:-1:-1;;;;;46230:25:165;;;:::i;:::-;1553:47875;46230:30;;:72;;;46007:3;46226:144;;46007:3;-1:-1:-1;;;;;46417:18:165;;;:::i;:::-;1553:47875;;-1:-1:-1;;;46409:76:165;;45846:2;46409:76;;;1553:47875;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;-1:-1:-1;;;;;1553:47875:165;;;:::i;:::-;;;;;;45846:2;1553:47875;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;;45846:2;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;41641:51;1553:47875;;;;;;;;;;;;45846:2;1553:47875;;;;;;;;;;;;;;;;;;;;;;;46409:76;;;;;;;45846:2;46409:76;;-1:-1:-1;;;;;46409:76:165;;;;1553:47875;;46409:76;;;;;;;;1553:47875;46409:76;;;1553:47875;4093:83:22;;45846:2:165;4093:83:22;39973:1:165;4093:83:22;;;;1553:47875:165;46007:3;1553:47875;45972:13;;;46409:76;;;45846:2;46409:76;;;;;;;;;1553:47875;46409:76;;;:::i;:::-;;;1553:47875;;;;;39973:1;46409:76;;;;;-1:-1:-1;46409:76:165;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;45846:2;1553:47875;;;;;;;-1:-1:-1;;1553:47875:165;;;;;;;;;;;;45846:2;1553:47875;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;39940:22;1553:47875;;;:::i;:::-;;;;;;;;;;39940:22;1553:47875;;;;;;;;;;;;;;;;;;45846:2;1553:47875;;;;;;;;39973:1;1553:47875;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39973:1;1553:47875;;;;;;;;;;;45846:2;1553:47875;;;:::i;:::-;;45846:2;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;46226:144;46330:25;;;;;:::i;:::-;46226:144;;;46230:72;46265:37;;1553:47875;46265:37;;;:::i;:::-;46264:38;46230:72;;45987:18;;;;;;;;;;1083:131:25;40386:16:165;1553:47875;45846:2;40386:16;;1553:47875;;40374:29;45846:2;1553:47875;;;;;40374:29;40417:32;1553:47875;40417:46;40413:127;;45967:685;1553:47875;;17498:64:169;45846:2:165;17498:64:169;;1553:47875:165;;;;;;;;;;;;17498:64:169;;;39940:22:165;17498:64:169;;:::i;:::-;1553:47875:165;17488:75:169;;39812:846:165;:::o;40413:127::-;40484:45;45846:2;1553:47875;;;;;40484:45;40413:127;;40013:177;40159:20;;;40166:13;40159:20;:::o;1553:47875::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;42108:1705::-;42238:24;;;42273:1;42238:24;;;;:::i;:::-;:36;;;1553:47875;;42319:24;;;;:::i;:::-;:36;;;42315:179;;42550:24;;;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;42596:21;;;;;42620;42596;;;:::i;:::-;42620;;;1553:47875;42620:21;;;;:::i;:::-;1553:47875;;;42596:45;1553:47875;;;42699:21;;;:::i;:::-;1553:47875;42724:29;;;;1553:47875;42620:21;1553:47875;;;;42699:54;1553:47875;;42910:46;1553:47875;42934:21;42830:46;42854:21;;;;:::i;:::-;1553:47875;42830:46;;:::i;:::-;42934:21;;:::i;:::-;1553:47875;42910:46;;:::i;:::-;-1:-1:-1;1553:47875:165;;;43078:31;;;1553:47875;43147:32;;;;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;43246:19;;;;1553:47875;;;;42620:21;;1553:47875;43134:144;43215:62;42620:21;43246:19;;1553:47875;43246:19;:::i;:::-;:31;1553:47875;43215:62;;:::i;:::-;43246:19;1553:47875;;;;;;;;;43134:144;;;;;;1553:47875;;;;;43134:144;;;;;;;1553:47875;43134:144;;;42108:1705;1553:47875;;;;;43246:19;1553:47875;-1:-1:-1;;;43368:185:165;;-1:-1:-1;;;;;1553:47875:165;;;43134:144;43368:185;;1553:47875;;;;;;;;42620:21;43513:26;;;1553:47875;43134:144;1553:47875;;;;43368:185;1553:47875;-1:-1:-1;43368:185:165;;;;;;;;1553:47875;43368:185;;;42108:1705;43654:19;;;;;:::i;:::-;43675:21;;;;:::i;:::-;1553:47875;43246:19;1553:47875;;;;;43605:92;;43246:19;43134:144;43605:92;;1553:47875;;;;;;;;;;;;;;;;;;;;42620:21;1553:47875;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;43147:32;1553:47875;;;;;;;42596:21;43134:144;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;42620:21;1553:47875;;;;;;;;;;;43368:185;1553:47875;;;;43246:19;1553:47875;;;;;;;;:::i;:::-;;;;;;;;;;;43605:92;;;;;;;;;1553:47875;43605:92;;;1553:47875;43784:21;;;;:::i;:::-;43246:19;1553:47875;18547:70:169;42620:21:165;18547:70:169;;1553:47875:165;;;43246:19;1553:47875;;;;;;;;;;42596:21;1553:47875;;;18547:70:169;;;;;;;:::i;43605:92:165:-;;;;42620:21;43605:92;;42620:21;43605:92;;;;;;1553:47875;43605:92;;;:::i;:::-;;;1553:47875;;;;;;43784:21;43605:92;;;;;-1:-1:-1;43605:92:165;;1553:47875;;;;;;;43246:19;1553:47875;42273:1;1553:47875;;;;;;;;;:::i;:::-;;;;42620:21;1553:47875;;;42620:21;1553:47875;;;;;;;;;;;;;;;;43368:185;;;;;42620:21;43368:185;;42620:21;43368:185;;;;;;1553:47875;43368:185;;;:::i;:::-;;;1553:47875;;;;;;;43654:19;43368:185;;;;;-1:-1:-1;43368:185:165;;1553:47875;;;;;;43134:144;1553:47875;;43134:144;;;;42620:21;43134:144;42620:21;43134:144;;;;;;;:::i;:::-;;;;1553:47875;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;43880:1705::-;;44013:27;;;44051:1;44013:27;;;;:::i;:::-;:39;;;1553:47875;;44100:27;;;;:::i;:::-;:39;;;44096:182;;44337:27;;;:::i;:::-;1553:47875;;;;;;;;;;;;;;;;;;44386:22;;;;;;;:::i;:::-;:33;;;1553:47875;;;44553:29;;;1553:47875;;;;44535:15;:47;:15;;:47;:::i;:::-;44534:72;44586:16;;;1553:47875;44534:72;;;:::i;:::-;44625:20;;;;1553:47875;2670:66;44051:1;2670:66;;;;;;;44625:43;;1553:47875;;44759:43;;44727:75;44759:43;;:::i;:::-;44727:75;;:::i;:::-;44854:25;44839:40;44854:25;;;1553:47875;44839:40;;:::i;:::-;44535:15;44820:59;1553:47875;;44998:34;;;:::i;:::-;45050:28;1553:47875;45050:28;;44535:15;;1553:47875;;45050:46;1553:47875;;;45245:34;;;:::i;:::-;45293:31;1553:47875;45293:31;;45338:45;;;;;2446:3;;45338:45;;;;:::i;:::-;45397:22;;;;;;:::i;:::-;1553:47875;;;2446:3;1553:47875;2446:3;;:::i;:::-;1553:47875;;2446:3;;:::i;:::-;47096:752;;;43880:1705;47862:13;;1553:47875;47862:13;;;47881:16;1553:47875;47881:16;;;47979:15;;47857:168;47906:3;1553:47875;;47877:27;;;;;1553:47875;;;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;-1:-1:-1;;1553:47875:165;;;44051:1;1553:47875;47862:13;;47877:27;;;;;;;;;;1553:47875;48081:3;1553:47875;;48054:25;;;;;44051:1;;-1:-1:-1;;;;;48121:17:165;1553:47875;48121:17;;:::i;:::-;2288:3;1553:47875;;;;;;;-1:-1:-1;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;48039:13;;48054:25;;;;;;;;;;;;1553:47875;;;-1:-1:-1;;;;;1553:47875:165;;;;-1:-1:-1;;;1553:47875:165;;;;;;;;;;;;;;;;48034:163;1553:47875;;;;;;;;;;;;;;;;;;;;45471:47;1553:47875;;;;;;45471:47;1553:47875;;;;;;;;;;44625:20;1553:47875;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;45338:45;1553:47875;;;;44386:22;1553:47875;;;;;;18992:30:169;;2203:1;1553:47875:165;2203:1:169;;19042:32;;2203:1;1553:47875:165;;;18907:257:169;;;1553:47875:165;18907:257:169;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:47875:165;;18907:257:169;;;;;;1553:47875:165;18907:257:169;;;:::i;1553:47875:165:-;;;-1:-1:-1;;;;;1553:47875:165;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;44051:1;1553:47875;;;;2288:3;;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;44051:1;1553:47875;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;47096:752;2203:1:169;;47557:25:165;1553:47875;47557:25;;2203:1:169;;;1145:66:27;;1837:24:26;;:71;;;;47096:752:165;1553:47875;;;;;2203:1:169;1553:47875:165;;2203:1:169;44051::165;1553:47875;;;1705:1673:171;;;;;;;;;;;;;;;;;;;1553:47875:165;1705:1673:171;;;;;;;44553:29:165;47733:52;;1553:47875;;-1:-1:-1;;;;;;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;-1:-1:-1;;47096:752:165;;1705:1673:171;;1553:47875:165;1705:1673:171;;;;1553:47875:165;;;;;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24604:3813:169;;;;;;1553:47875:165;32602:29:169;;;1553:47875:165;;;;32634:22:169;24973:15;32634:22;;:::i;:::-;32602:77;32634:45;32659:16;;;1553:47875:165;32634:45:169;;;:::i;:::-;32602:77;;:::i;:::-;25003:15;;;;;;:82;;24604:3813;24999:676;;;25109:35;;;1553:47875:165;;25194:25:169;;;;:::i;:::-;:39;1553:47875:165;;25769:24:169;24999:676;;25769:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1553:47875:165;3226:200:80;25834:4:169;3226:200:80;;32602:29:169;3226:200:80;32659:16:169;3226:200:80;;1553:47875:165;3226:200:80;1553:47875:165;32602:29:169;1553:47875:165;;;;;25897:37:169;;;25958:23;;32602:19;25958:23;;1553:47875:165;;;;;;;2446:3;1553:47875;;:::i;:::-;2446:3;;;:::i;:::-;1553:47875;3226:200:80;1553:47875:165;;26089:23:169;1553:47875:165;;26279:240:169;1553:47875:165;26800:272:169;26279:240;;;3226:200:80;26279:240:169;;;;;;;1553:47875:165;32602:19:169;1553:47875:165;;26889:32:169;;1553:47875:165;26800:272:169;;:::i;1553:47875:165:-;;;;;;;;;;;;;;;;;;25893:2495:169;1553:47875:165;;;32602:19:169;27093:37;27089:1299;;25893:2495;;;;;1553:47875:165;24604:3813:169;:::o;27089:1299::-;27166:199;27203:15;27243:25;27203:15;;;;;1553:47875:165;27243:25:169;;1553:47875:165;;-1:-1:-1;;;;;1553:47875:165;;;;;27166:199:169;;:::i;:::-;27380:27;1553:47875:165;27427:13:169;27623:14;1553:47875:165;27623:14:169;;27422:929;27466:3;27442:22;;;;;;3927:8:77;3871:27;2446:3:165;1553:47875;;;;;;;;:::i;2446:3::-;3871:27:77;;:::i;3927:8::-;-1:-1:-1;;;;;1553:47875:165;;;;;;;;;;;;;;;;27619:718:169;;27466:3;;32602:19;27466:3;27427:13;1553:47875:165;27427:13:169;;27619:718;-1:-1:-1;;;;;2780:163:73;1553:47875:165;2780:163:73;;;2113:66:165;1553:47875;2780:163:73;;;;3327:69:76;;27982:50:169;;;28060:8;32602:19;28060:8;;;27978:223;3556:68:76;32602:19:169;28227:17;3556:68:76;;;28227:17:169;:::i;:::-;:30;;;;28223:96;;27619:718;;;28223:96;28285:11;;;;;;;32602:19;28285:11;:::o;27442:22::-;;;;;;;;1553:47875:165;28365:12:169;:::o;1553:47875:165:-;;;;;;;;;;;;;;;;;;24999:676:169;24973:15;;;;;;25468:21;;1553:47875:165;;25769:24:169;25526:69;;;24999:676;;;;25526:69;25565:15;;25526:69;;;1553:47875:165;;;;;;;;;25003:82:169;25053:32;25040:45;25053:32;;;1553:47875:165;25040:45:169;;:::i;:::-;24973:15;25022:63;25003:82;;23884:229;1553:47875:165;;:::i;:::-;;;24062:12:169;15374:24:83;15370:103;;1553:47875:165;837:15:87;14374:24:83;14370:103;;1553:47875:165;;;;;:::i;:::-;24032:1:169;1553:47875:165;;;24062:12:169;1553:47875:165;24000:106:169;;;1553:47875:165;;837:15:87;1553:47875:165;;24000:106:169;;1553:47875:165;23884:229:169;:::o;14370:103:83:-;15421:41;;;24032:1:169;14421:41:83;14452:2;14421:41;1553:47875:165;837:15:87;1553:47875:165;;;24032:1:169;14421:41:83;15370:103;15421:41;;;24032:1:169;15421:41:83;15452:2;15421:41;1553:47875:165;24062:12:169;1553:47875:165;;;24032:1:169;15421:41:83;1553:47875:165;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;2288:3;;;1553:47875;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31451:456:169;-1:-1:-1;;;;;31451:456:169;;1553:47875:165;;;;31760:24:169;;;;:::i;:::-;1553:47875:165;;;;;;31872:5:169;1553:47875:165;;31885:1:169;1553:47875:165;31451:456:169;:::o;1553:47875:165:-;;-1:-1:-1;;;;;1553:47875:165;;;;;;;:::o;863:809:22:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;32092:179:169:-;32244:16;32206:34;32205:59;32092:179;1553:47875:165;32211:29:169;;;1553:47875:165;;;;32206:34:169;;:::i;:::-;32244:16;;1553:47875:165;32205:59:169;;:::i;28908:322::-;29028:50;29062:15;29028:50;;:::i;:::-;29062:15;;;29101:37;;29094:44;:::o;29024:200::-;29176:37;;29169:44;:::o;29367:312::-;;29490:37;29367:312;29490:37;;:::i;:::-;;;;29550;;29543:44;:::o;29486:187::-;29625:37;;29618:44;:::o;7001:1787:20:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:20;;;8025:68;;2933:1:27;2929:5;4026:14:20;2670:66:165;4010:31:20;;;:::i;:::-;1553:47875:165;425:3:20;1553:47875:165;;;4003:1:27;2933;2929:5;;1553:47875:165;425:3:20;4492:84:22;;;4093:83;2670:66:165;4093:83:22;;;4003:1:27;1553:47875:165;;2670:66;4492:84:22;;;2670:66:165;4093:83:22;;;;;2670:66:165;4093:83:22;;;1581:66:20;2670::165;4093:83:22;;;-1:-1:-1;;;2670:66:165;4093:83:22;;;531:131:25;;2670:66:165;4093:83:22;;;;;;4003:1:27;2670:66:165;4492:84:22;;2933:1:27;4492:84:22;;2670:66:165;531:131:25;;5696:10:20;;;4093:83:22;;4492:84;2670:66:165;1145::27;;531:131:25;;6084:3:20;1553:47875:165;-1:-1:-1;;;;;1553:47875:165;;;6084:3:20;1553:47875:165;;6062:44:20;1145:66:27;;;1860::20;1553:47875:165;1860:66:20;;1553:47875:165;6037:2:20;1553:47875:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1553:47875:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1553:47875:165;4093:83:22;;1553:47875:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1553:47875:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1553:47875:165;1640:140:24;3543:209:25;1553:47875:165;3543:209:25;648:2:20;3543:209:25;1553:47875:165;;;;;6037:2:20;1553:47875:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1553:47875:165;8070:12:20;:::o;4016:191:40:-;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1553:47875:165;;4107:92:40;;;;1553:47875:165;1959:95:40;1553:47875:165;;;1959:95:40;;1553:47875:165;1959:95:40;;;1553:47875:165;4170:13:40;1959:95;;;1553:47875:165;4193:4:40;1959:95;;;1553:47875:165;1959:95:40;4107:92;;;;;;:::i;7082:141:30:-;1553:47875:165;-1:-1:-1;;;;;;;;;;;1553:47875:165;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;33026:467:169;1553:47875:165;;:::i;:::-;-1:-1:-1;33330:51:169;;;1553:47875:165;33448:27:169;;;1553:47875:165;;;;;;;;33401:15:169;;-1:-1:-1;;;;;1553:47875:165;;;;:::i;:::-;;;;:::i;:::-;;;33189:297:169;;;2288:3:165;33401:15:169;1553:47875:165;:::i;:::-;;33189:297:169;;1553:47875:165;33189:297:169;;;1553:47875:165;33026:467:169;:::o;5203:1551:77:-;;;6283:66;6270:79;;6266:164;;1553:47875:165;;;;;;-1:-1:-1;1553:47875:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1553:47875:165;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1553:47875:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1553:47875:165;7462:38:77;;1553:47875:165;;7523:23:77;;;7375:20;7523:23;1553:47875:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1553:47875:165;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1553:47875:165;;;7375:20:77;7763:32;30086:863:169;;30332:54;30254;;;1553:47875:165;30332:54:169;;1553:47875:165;30460:10:169;;;1553:47875:165;;30531:9:169;;;;30563;;;;;30595;;;30696:14;;;;;30086:863;1553:47875:165;;;30912:30:169;;;30905:37;;30086:863;:::o;30912:30::-;30927:14;;30086:863;-1:-1:-1;30086:863:169:o;1553:47875:165:-;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;30696:14:169;;;;;1553:47875:165;;;;-1:-1:-1;1553:47875:165;;-1:-1:-1;1553:47875:165;2129:778:77;1553:47875:165;;;2129:778:77;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:77;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;1767:250:27:-;-1:-1:-1;;912:66:27;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:27;;1948:15;:62;1767:250;:::o;6928:687:40:-;1553:47875:165;;:::i;:::-;;;;7100:22:40;;;;1553:47875:165;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1553:47875:165;;:::i;:::-;;;;8017:25:40;;;;1553:47875:165;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1553:47875:165;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1553:47875:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1553:47875:165;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1553:47875:165;;;;4933:24:66;1553:47875:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":10287,"length":32},{"start":10434,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"1622441d","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":"ee32004f","createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":"0d91bf2a","eip712Domain()":"84b0196e","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":"8c4ace6a","requestCodeValidationBaseFee()":"188509e9","requestCodeValidationExtraFee()":"f1ef31ec","requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":"f0fd702a","setMirror(address)":"3d43b418","setRequestCodeValidationBaseFee(uint256)":"11bec80d","setRequestCodeValidationExtraFee(uint256)":"0b9737ce","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"providedBlobHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedBlobHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidBlobHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedLength\",\"type\":\"uint256\"}],\"name\":\"InvalidBlobHashesLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"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\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"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\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ethBlockHash\",\"type\":\"bytes32\"}],\"name\":\"EBCommitted\",\"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\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"MBCommitted\",\"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\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.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\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.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 Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastAdvancedEthBlock\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasAggregatedPublicKey\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"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\":\"createProgramWithAbiInterfaceAndExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"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\":\"createProgramWithExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"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\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationExtraFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_requester\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"_blobHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v1\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s1\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_v2\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s2\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidationOnBehalf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExtraFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationExtraFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxValidators\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationBaseFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationExtraFee\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BlobNotFound()\":[{\"details\":\"Thrown when the tx is not in EIP-4844/EIP-7594 format, so it doesn't have blobhashes.\"}],\"CodeAlreadyOnValidationOrValidated()\":[{\"details\":\"Thrown when the code is already on validation or validated.\"}],\"CodeNotValidated()\":[{\"details\":\"Thrown when the code is not validated and someone tries to create program with it.\"}],\"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.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"EraDurationTooShort()\":[{\"details\":\"Thrown when the era duration is too short (era duration must be greater than election duration).\"}],\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"ExpiredSignature(uint256)\":[{\"details\":\"Thrown when deadline for code validation request has expired.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"GenesisHashAlreadySet()\":[{\"details\":\"Thrown when the genesis hash is already set by someone else.\"}],\"GenesisHashNotFound()\":[{\"details\":\"Thrown when the genesis hash is not found from previous blocks. There is 256 blocks lookback for `blockhash` opcode, so if the genesis block is too old, it may not be found.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidBlobHash(uint256,bytes32,bytes32)\":[{\"details\":\"Thrown when the blobhash for code validation request is invalid.\"}],\"InvalidBlobHashesLength(uint256,uint256)\":[{\"details\":\"Thrown when the provided blob hashes length doesn't match the actual blob hashes length in transaction.\"}],\"InvalidElectionDuration()\":[{\"details\":\"Thrown when an invalid election duration is provided (must be greater than 0).\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidSigner(address,address)\":[{\"details\":\"Thrown when the signer of the code validation request is not the requester.\"}],\"InvalidTimestamp()\":[{\"details\":\"Thrown when an invalid block.timestamp is provided (must be greater than 0).\"}],\"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.\"}],\"RouterGenesisHashNotInitialized()\":[{\"details\":\"Thrown when the router's genesis hash is not initialized (no one called `lookupGenesisHash` yet).\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidationDelayTooBig()\":[{\"details\":\"Thrown when the validation delay is too big.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"events\":{\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch hash (`keccak256` algorithm), see `Gear.batchCommitmentHash(...)`.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, one the client side it's calculated as `gprimitives::CodeId::generate(wasm_code)`.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"EBCommitted(bytes32)\":{\"details\":\"Lets observers update `last_committed_eb` so the producer can decide when to issue a checkpoint batch even with no transitions.\",\"params\":{\"ethBlockHash\":\"Latest Ethereum block hash whose events were folded into the chain commitment's MB head.\"}},\"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.\"},\"MBCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\"}},\"StorageSlotChanged(bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\",\"params\":{\"slot\":\"The new storage slot.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\",\"returns\":{\"_0\":\"domainSeparator The domain separator.\"}},\"areValidators(address[])\":{\"details\":\"Checks if the given addresses are all validators.\",\"returns\":{\"_0\":\"areValidators `true` if all addresses are validators, `false` otherwise.\"}},\"codeState(bytes32)\":{\"details\":\"Returns the state of code.\",\"returns\":{\"_0\":\"codeState The state of the code.\"}},\"codesStates(bytes32[])\":{\"details\":\"Returns the states of multiple codes.\",\"returns\":{\"_0\":\"codesStates The states of the codes.\"}},\"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])\":{\"details\":\"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\",\"params\":{\"_batch\":\"The batch commitment data.\",\"_signatureType\":\"The type of signature to validate.\",\"_signatures\":\"The signatures for the batch commitment.\"}},\"computeSettings()\":{\"details\":\"Returns the computation settings.\",\"returns\":{\"_0\":\"computeSettings The computation settings.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createProgram(bytes32,bytes32,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterface(bytes32,bytes32,address,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"genesisBlockHash()\":{\"details\":\"Returns the hash of the genesis block.\",\"returns\":{\"_0\":\"genesisBlockHash The hash of the genesis block.\"}},\"genesisTimestamp()\":{\"details\":\"Returns the timestamp of the genesis block.\",\"returns\":{\"_0\":\"genesisTimestamp The timestamp of the genesis block.\"}},\"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])\":{\"details\":\"Initializes the `Router` with the given parameters.\",\"params\":{\"_aggregatedPublicKey\":\"The optional aggregated public key of the initial validators. Will be used in future.\",\"_electionDuration\":\"The duration of an election in seconds.\",\"_eraDuration\":\"The duration of an era in seconds.\",\"_middleware\":\"The address of the middleware contract.\",\"_mirror\":\"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\",\"_owner\":\"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\",\"_validationDelay\":\"The delay before validators can start validating in seconds.\",\"_validators\":\"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.\",\"_verifiableSecretSharingCommitment\":\"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\",\"_wrappedVara\":\"The address of the `WrappedVara` (WVARA) ERC20 token contract.\"}},\"isValidator(address)\":{\"details\":\"Checks if the given address is a validator.\",\"returns\":{\"_0\":\"isValidator `true` if the address is a validator, `false` otherwise.\"}},\"latestCommittedBatchHash()\":{\"details\":\"Returns the hash of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchHash The hash of the latest committed batch.\"}},\"latestCommittedBatchTimestamp()\":{\"details\":\"Returns the timestamp of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchTimestamp The timestamp of the latest committed batch.\"}},\"lookupGenesisHash()\":{\"details\":\"Looks up the genesis hash from previous blocks.\"},\"middleware()\":{\"details\":\"Returns the address of the middleware implementation.\",\"returns\":{\"_0\":\"middleware The address of the middleware implementation.\"}},\"mirrorImpl()\":{\"details\":\"Returns the address of the mirror implementation.\",\"returns\":{\"_0\":\"mirrorImpl The address of the mirror implementation.\"}},\"nonces(address)\":{\"details\":\"Returns the next unused nonce for an address.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Pauses the contract.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\",\"returns\":{\"_0\":\"isPaused `true` if the contract is paused, `false` otherwise.\"}},\"programCodeId(address)\":{\"details\":\"Returns the code ID of the given program.\",\"returns\":{\"_0\":\"codeId The code ID of the program.\"}},\"programsCodeIds(address[])\":{\"details\":\"Returns the code IDs of the given programs.\",\"returns\":{\"_0\":\"codesIds The code IDs of the programs.\"}},\"programsCount()\":{\"details\":\"Returns the count of programs.\",\"returns\":{\"_0\":\"programsCount The count of programs.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\",\"details\":\"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!\"},\"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.\"},\"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.\",\"params\":{\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\"}},\"requestCodeValidationBaseFee()\":{\"details\":\"Returns the base fee for requesting code validation in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationBaseFee The base fee for requesting code validation.\"}},\"requestCodeValidationExtraFee()\":{\"details\":\"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else.\"}},\"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.\",\"params\":{\"_blobHashes\":\"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.\",\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_r2\":\"ECDSA signature parameter (for permit).\",\"_requester\":\"The address of the requester on behalf of whom the code validation is requested.\",\"_s1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_s2\":\"ECDSA signature parameter (for permit).\",\"_v1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_v2\":\"ECDSA signature parameter (for permit).\"}},\"setMirror(address)\":{\"details\":\"Sets the `Mirror` implementation address.\",\"params\":{\"newMirror\":\"The new mirror implementation address.\"}},\"setRequestCodeValidationBaseFee(uint256)\":{\"details\":\"Sets the base fee for requesting code validation in WVARA ERC20 token.\",\"params\":{\"newBaseFee\":\"The new base fee for requesting code validation.\"}},\"setRequestCodeValidationExtraFee(uint256)\":{\"details\":\"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"params\":{\"newExtraFee\":\"The new extra fee for requesting code validation on behalf of someone else.\"}},\"signingThresholdFraction()\":{\"details\":\"Returns the signing threshold fraction.\",\"returns\":{\"thresholdDenominator\":\"The denominator of the signing threshold fraction.\",\"thresholdNumerator\":\"The numerator of the signing threshold fraction.\"}},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\",\"returns\":{\"_0\":\"storageView The storage view of the contract storage.\"}},\"timelines()\":{\"details\":\"Returns the timelines.\",\"returns\":{\"_0\":\"timelines The timelines.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Unpauses the contract.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"validatedCodesCount()\":{\"details\":\"Returns the count of validated codes.\",\"returns\":{\"_0\":\"validatedCodesCount The count of validated codes.\"}},\"validators()\":{\"details\":\"Returns the list of current validators.\",\"returns\":{\"_0\":\"validators The list of current validators.\"}},\"validatorsAggregatedPublicKey()\":{\"details\":\"Returns the aggregated public key of the current validators.\",\"returns\":{\"_0\":\"validatorsAggregatedPublicKey The aggregated public key of the current validators.\"}},\"validatorsCount()\":{\"details\":\"Returns the count of current validators.\",\"returns\":{\"_0\":\"validatorsCount The count of current validators.\"}},\"validatorsThreshold()\":{\"details\":\"Returns the threshold number of validators required for a valid signature.\",\"returns\":{\"_0\":\"threshold The threshold number of validators required for a valid signature.\"}},\"validatorsVerifiableSecretSharingCommitment()\":{\"details\":\"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\",\"returns\":{\"_0\":\"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators.\"}},\"wrappedVara()\":{\"details\":\"Returns the address of the wrapped Vara implementation.\",\"returns\":{\"_0\":\"wrappedVara The address of the wrapped Vara implementation.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its `Gear.CodeState` changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"EBCommitted(bytes32)\":{\"notice\":\"Emitted when a chain commitment carrying a `lastAdvancedEthBlock` lands on-chain.\"},\"MBCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1\",\"dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Router.sol\":{\"keccak256\":\"0x1f0d777704c9ea8a2f5e8e9e02d3f61765667dc40dc943d65d6f25c4a605406f\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://959a5d6b41c8a9946f3f33480d84e6efda68d653d2618e517a0a443c175a4036\",\"dweb:/ipfs/QmSubQM2F8doVQ1KojePgmTfrGweEUx5frzwBRPiY53kcH\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3\",\"dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b\",\"dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b\",\"dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389\",\"dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"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":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32","name":"providedBlobHash","type":"bytes32"},{"internalType":"bytes32","name":"expectedBlobHash","type":"bytes32"}],"type":"error","name":"InvalidBlobHash"},{"inputs":[{"internalType":"uint256","name":"providedLength","type":"uint256"},{"internalType":"uint256","name":"expectedLength","type":"uint256"}],"type":"error","name":"InvalidBlobHashesLength"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"requester","type":"address"}],"type":"error","name":"InvalidSigner"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"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":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","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}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"ethBlockHash","type":"bytes32","indexed":false}],"type":"event","name":"EBCommitted","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":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"MBCommitted","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":"account","type":"address","indexed":false}],"type":"event","name":"Paused","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":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]},{"internalType":"bytes32","name":"head","type":"bytes32"},{"internalType":"bytes32","name":"lastAdvancedEthBlock","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"bool","name":"hasAggregatedPublicKey","type":"bool"},{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"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":"createProgramWithAbiInterfaceAndExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"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":"createProgramWithExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"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":"requestCodeValidation"},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationExtraFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_requester","type":"address"},{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32[]","name":"_blobHashes","type":"bytes32[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v1","type":"uint8"},{"internalType":"bytes32","name":"_r1","type":"bytes32"},{"internalType":"bytes32","name":"_s1","type":"bytes32"},{"internalType":"uint8","name":"_v2","type":"uint8"},{"internalType":"bytes32","name":"_r2","type":"bytes32"},{"internalType":"bytes32","name":"_s2","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidationOnBehalf"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"uint256","name":"newBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationBaseFee"},{"inputs":[{"internalType":"uint256","name":"newExtraFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationExtraFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"},{"internalType":"uint16","name":"maxValidators","type":"uint16"},{"internalType":"uint256","name":"requestCodeValidationBaseFee","type":"uint256"},{"internalType":"uint256","name":"requestCodeValidationExtraFee","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"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":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.","returns":{"_0":"domainSeparator The domain separator."}},"areValidators(address[])":{"details":"Checks if the given addresses are all validators.","returns":{"_0":"areValidators `true` if all addresses are validators, `false` otherwise."}},"codeState(bytes32)":{"details":"Returns the state of code.","returns":{"_0":"codeState The state of the code."}},"codesStates(bytes32[])":{"details":"Returns the states of multiple codes.","returns":{"_0":"codesStates The states of the codes."}},"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":{"details":"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.","params":{"_batch":"The batch commitment data.","_signatureType":"The type of signature to validate.","_signatures":"The signatures for the batch commitment."}},"computeSettings()":{"details":"Returns the computation settings.","returns":{"_0":"computeSettings The computation settings."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createProgram(bytes32,bytes32,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterface(bytes32,bytes32,address,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"genesisBlockHash()":{"details":"Returns the hash of the genesis block.","returns":{"_0":"genesisBlockHash The hash of the genesis block."}},"genesisTimestamp()":{"details":"Returns the timestamp of the genesis block.","returns":{"_0":"genesisTimestamp The timestamp of the genesis block."}},"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":{"details":"Initializes the `Router` with the given parameters.","params":{"_aggregatedPublicKey":"The optional aggregated public key of the initial validators. Will be used in future.","_electionDuration":"The duration of an election in seconds.","_eraDuration":"The duration of an era in seconds.","_middleware":"The address of the middleware contract.","_mirror":"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.","_owner":"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.","_validationDelay":"The delay before validators can start validating in seconds.","_validators":"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.","_verifiableSecretSharingCommitment":"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.","_wrappedVara":"The address of the `WrappedVara` (WVARA) ERC20 token contract."}},"isValidator(address)":{"details":"Checks if the given address is a validator.","returns":{"_0":"isValidator `true` if the address is a validator, `false` otherwise."}},"latestCommittedBatchHash()":{"details":"Returns the hash of the latest committed batch.","returns":{"_0":"latestCommittedBatchHash The hash of the latest committed batch."}},"latestCommittedBatchTimestamp()":{"details":"Returns the timestamp of the latest committed batch.","returns":{"_0":"latestCommittedBatchTimestamp The timestamp of the latest committed batch."}},"lookupGenesisHash()":{"details":"Looks up the genesis hash from previous blocks."},"middleware()":{"details":"Returns the address of the middleware implementation.","returns":{"_0":"middleware The address of the middleware implementation."}},"mirrorImpl()":{"details":"Returns the address of the mirror implementation.","returns":{"_0":"mirrorImpl The address of the mirror implementation."}},"nonces(address)":{"details":"Returns the next unused nonce for an address."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"Pauses the contract."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise.","returns":{"_0":"isPaused `true` if the contract is paused, `false` otherwise."}},"programCodeId(address)":{"details":"Returns the code ID of the given program.","returns":{"_0":"codeId The code ID of the program."}},"programsCodeIds(address[])":{"details":"Returns the code IDs of the given programs.","returns":{"_0":"codesIds The code IDs of the programs."}},"programsCount()":{"details":"Returns the count of programs.","returns":{"_0":"programsCount The count of programs."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":"","details":"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!"},"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."},"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.","params":{"_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter."}},"requestCodeValidationBaseFee()":{"details":"Returns the base fee for requesting code validation in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationBaseFee The base fee for requesting code validation."}},"requestCodeValidationExtraFee()":{"details":"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."}},"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.","params":{"_blobHashes":"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.","_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r1":"ECDSA signature parameter (for requestCodeValidation).","_r2":"ECDSA signature parameter (for permit).","_requester":"The address of the requester on behalf of whom the code validation is requested.","_s1":"ECDSA signature parameter (for requestCodeValidation).","_s2":"ECDSA signature parameter (for permit).","_v1":"ECDSA signature parameter (for requestCodeValidation).","_v2":"ECDSA signature parameter (for permit)."}},"setMirror(address)":{"details":"Sets the `Mirror` implementation address.","params":{"newMirror":"The new mirror implementation address."}},"setRequestCodeValidationBaseFee(uint256)":{"details":"Sets the base fee for requesting code validation in WVARA ERC20 token.","params":{"newBaseFee":"The new base fee for requesting code validation."}},"setRequestCodeValidationExtraFee(uint256)":{"details":"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","params":{"newExtraFee":"The new extra fee for requesting code validation on behalf of someone else."}},"signingThresholdFraction()":{"details":"Returns the signing threshold fraction.","returns":{"thresholdDenominator":"The denominator of the signing threshold fraction.","thresholdNumerator":"The numerator of the signing threshold fraction."}},"storageView()":{"details":"Returns the storage view of the contract storage.","returns":{"_0":"storageView The storage view of the contract storage."}},"timelines()":{"details":"Returns the timelines.","returns":{"_0":"timelines The timelines."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"details":"Unpauses the contract."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"validatedCodesCount()":{"details":"Returns the count of validated codes.","returns":{"_0":"validatedCodesCount The count of validated codes."}},"validators()":{"details":"Returns the list of current validators.","returns":{"_0":"validators The list of current validators."}},"validatorsAggregatedPublicKey()":{"details":"Returns the aggregated public key of the current validators.","returns":{"_0":"validatorsAggregatedPublicKey The aggregated public key of the current validators."}},"validatorsCount()":{"details":"Returns the count of current validators.","returns":{"_0":"validatorsCount The count of current validators."}},"validatorsThreshold()":{"details":"Returns the threshold number of validators required for a valid signature.","returns":{"_0":"threshold The threshold number of validators required for a valid signature."}},"validatorsVerifiableSecretSharingCommitment()":{"details":"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.","returns":{"_0":"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."}},"wrappedVara()":{"details":"Returns the address of the wrapped Vara implementation.","returns":{"_0":"wrappedVara The address of the wrapped Vara implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x3bc1fd928e60abab64286be26d4297dd92e3f04bc92615e5e05d2a56569567c6","urls":["bzz-raw://976478d3cf29a5740ea08b1fd332bb1e470329a273a53d71b29d8e4c2e90c7c1","dweb:/ipfs/QmUGYY2KTDfsfcfcH4YpCEZpJ19vkjaQDoG8tpXhJiAEf5"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Router.sol":{"keccak256":"0x1f0d777704c9ea8a2f5e8e9e02d3f61765667dc40dc943d65d6f25c4a605406f","urls":["bzz-raw://959a5d6b41c8a9946f3f33480d84e6efda68d653d2618e517a0a443c175a4036","dweb:/ipfs/QmSubQM2F8doVQ1KojePgmTfrGweEUx5frzwBRPiY53kcH"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Clones.sol":{"keccak256":"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7","urls":["bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3","dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/ClonesSmall.sol":{"keccak256":"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70","urls":["bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b","dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0xb01e4cc05dcbe9fd343e6fb9402ef7c1f65224f23ad8237bd994d6b2eef015ea","urls":["bzz-raw://a11ec6de45e93c4a5d524c70506556b967bbe19d2ee4cc4500919651deff021b","dweb:/ipfs/QmQykNxNr8xtLzsnn7svTdBtNiwiiydr6qKKPZx28RUf58"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/SSTORE2.sol":{"keccak256":"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd","urls":["bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389","dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":82354,"exportedSymbols":{"Clones":[82749],"ClonesSmall":[82833],"ECDSA":[51038],"EIP712Upgradeable":[44416],"FROST":[40965],"Gear":[84099],"Hashes":[41483],"IMiddleware":[74131],"IMirror":[74395],"IRouter":[74990],"IWrappedVara":[75006],"Memory":[41257],"NoncesUpgradeable":[43698],"OwnableUpgradeable":[42322],"PausableUpgradeable":[43858],"ReentrancyGuardTransientUpgradeable":[43943],"Router":[82353],"SSTORE2":[84555],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:49355:165","nodes":[{"id":79429,"nodeType":"PragmaDirective","src":"74:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":79431,"nodeType":"ImportDirective","src":"100:101:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":79430,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79433,"nodeType":"ImportDirective","src":"202:98:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43699,"symbolAliases":[{"foreign":{"id":79432,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43698,"src":"210:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79435,"nodeType":"ImportDirective","src":"301:102:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43859,"symbolAliases":[{"foreign":{"id":79434,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43858,"src":"309:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79437,"nodeType":"ImportDirective","src":"404:140:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":79436,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"417:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79439,"nodeType":"ImportDirective","src":"545:111:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":44417,"symbolAliases":[{"foreign":{"id":79438,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44416,"src":"553:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79441,"nodeType":"ImportDirective","src":"657:88:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":79440,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"665:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79443,"nodeType":"ImportDirective","src":"746:80:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":79442,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"754:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79445,"nodeType":"ImportDirective","src":"827:74:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":79444,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"835:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79447,"nodeType":"ImportDirective","src":"902:75:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":79446,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"910:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79449,"nodeType":"ImportDirective","src":"978:52:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":79448,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"986:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79451,"nodeType":"ImportDirective","src":"1031:60:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":79450,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"1039:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79453,"nodeType":"ImportDirective","src":"1092:73:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":79452,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"1100:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79455,"nodeType":"ImportDirective","src":"1166:48:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":79454,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"1174:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79457,"nodeType":"ImportDirective","src":"1215:40:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":79456,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"1223:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79459,"nodeType":"ImportDirective","src":"1256:40:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":74991,"symbolAliases":[{"foreign":{"id":79458,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74990,"src":"1264:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79461,"nodeType":"ImportDirective","src":"1297:50:165","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":75007,"symbolAliases":[{"foreign":{"id":79460,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"1305:12:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79463,"nodeType":"ImportDirective","src":"1348:48:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":82750,"symbolAliases":[{"foreign":{"id":79462,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82749,"src":"1356:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79465,"nodeType":"ImportDirective","src":"1397:58:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":82834,"symbolAliases":[{"foreign":{"id":79464,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82833,"src":"1405:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79467,"nodeType":"ImportDirective","src":"1456:44:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":84100,"symbolAliases":[{"foreign":{"id":79466,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"1464:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79469,"nodeType":"ImportDirective","src":"1501:50:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":82354,"sourceUnit":84556,"symbolAliases":[{"foreign":{"id":79468,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"1509:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82353,"nodeType":"ContractDefinition","src":"1553:47875:165","nodes":[{"id":79486,"nodeType":"VariableDeclaration","src":"1849:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1874:12:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1849:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":79485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:66:165","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":79489,"nodeType":"VariableDeclaration","src":"2068:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2093:17:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2068:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":79488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:66:165","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":79492,"nodeType":"VariableDeclaration","src":"2186:55:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2210:11:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79490,"name":"string","nodeType":"ElementaryTypeName","src":"2186:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":79491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2224:17:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_ded8ea4cbd8dfac3d256d1ee2019397a32c8630b040ad63275830e967889ecd8","typeString":"literal_string \"Vara.ETH Router\""},"value":"Vara.ETH Router"},"visibility":"private"},{"id":79495,"nodeType":"VariableDeclaration","src":"2247:44:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2271:14:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79493,"name":"string","nodeType":"ElementaryTypeName","src":"2247:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":79494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2288:3:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"private"},{"id":79498,"nodeType":"VariableDeclaration","src":"2298:73:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2323:40:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79496,"name":"uint256","nodeType":"ElementaryTypeName","src":"2298:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":79497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2366:5:165","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"id":79501,"nodeType":"VariableDeclaration","src":"2377:72:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2402:41:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79499,"name":"uint256","nodeType":"ElementaryTypeName","src":"2377:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":79500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:3:165","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"private"},{"id":79504,"nodeType":"VariableDeclaration","src":"2592:144:165","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2617:42:165","scope":82353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":79503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:66:165","typeDescriptions":{"typeIdentifier":"t_rational_25041847662038966976180655381136102362768580769727479521951050179079337377943_by_1","typeString":"int_const 2504...(69 digits omitted)...7943"},"value":"0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097"},"visibility":"private"},{"id":79512,"nodeType":"FunctionDefinition","src":"2811:53:165","nodes":[],"body":{"id":79511,"nodeType":"Block","src":"2825:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79508,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"2835:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2835:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79510,"nodeType":"ExpressionStatement","src":"2835:22:165"}]},"documentation":{"id":79505,"nodeType":"StructuredDocumentation","src":"2743:63:165","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":79506,"nodeType":"ParameterList","parameters":[],"src":"2822:2:165"},"returnParameters":{"id":79507,"nodeType":"ParameterList","parameters":[],"src":"2825:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79717,"nodeType":"FunctionDefinition","src":"4048:2520:165","nodes":[],"body":{"id":79716,"nodeType":"Block","src":"4463:2105:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":79541,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79515,"src":"4488:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79540,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4473:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4473:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79543,"nodeType":"ExpressionStatement","src":"4473:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79544,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43762,"src":"4505:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79546,"nodeType":"ExpressionStatement","src":"4505:17:165"},{"expression":{"arguments":[{"id":79548,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79492,"src":"4546:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79549,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"4559:14:165","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":79547,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"4532:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79551,"nodeType":"ExpressionStatement","src":"4532:42:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79552,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"4584:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4584:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79554,"nodeType":"ExpressionStatement","src":"4584:15:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79555,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"4609:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4609:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79557,"nodeType":"ExpressionStatement","src":"4609:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79559,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4821:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4827:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"4821:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4821:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79563,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74544,"src":"4842:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4842:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4813:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4813:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79566,"nodeType":"ExpressionStatement","src":"4813:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79568,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"4879:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4899:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4879:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79571,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74547,"src":"4902:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4902:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79567,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4871:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4871:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79574,"nodeType":"ExpressionStatement","src":"4871:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79576,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"4946:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79577,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"4961:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4946:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79579,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74550,"src":"4980:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4980:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4938:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4938:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79582,"nodeType":"ExpressionStatement","src":"4938:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79584,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79527,"src":"5171:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79585,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"5191:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":79586,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"5206:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5191:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79588,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5190:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":79589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5227:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5190:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5171:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79592,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74555,"src":"5231:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5231:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79583,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5163:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5163:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79595,"nodeType":"ExpressionStatement","src":"5163:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":79597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5282:25:165","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":79596,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82293,"src":"5266:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5266:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79599,"nodeType":"ExpressionStatement","src":"5266:42:165"},{"assignments":[79602],"declarations":[{"constant":false,"id":79602,"mutability":"mutable","name":"router","nameLocation":"5334:6:165","nodeType":"VariableDeclaration","scope":79716,"src":"5318:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79601,"nodeType":"UserDefinedTypeName","pathNode":{"id":79600,"name":"Storage","nameLocations":["5318:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"5318:7:165"},"referencedDeclaration":74490,"src":"5318:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79605,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79603,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"5343:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5343:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5318:34:165"},{"expression":{"id":79612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79606,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5363:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5370:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"5363:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79609,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5385:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5390:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83551,"src":"5385:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83080_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5385:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5363:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79613,"nodeType":"ExpressionStatement","src":"5363:39:165"},{"expression":{"id":79623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79614,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5412:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5419:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"5412:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79619,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79517,"src":"5452:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79620,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79519,"src":"5461:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79621,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79521,"src":"5475:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79617,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5435:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5440:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":82951,"src":"5435:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$82951_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":79622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5435:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5412:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79624,"nodeType":"ExpressionStatement","src":"5412:75:165"},{"expression":{"id":79632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79625,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5497:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79628,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5504:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"5497:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5523:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"5497:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79630,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5544:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5549:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":82872,"src":"5544:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5497:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79633,"nodeType":"ExpressionStatement","src":"5497:82:165"},{"expression":{"id":79641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79634,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5589:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5596:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"5589:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"5589:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79639,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5638:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5643:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":82876,"src":"5638:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5589:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79642,"nodeType":"ExpressionStatement","src":"5589:86:165"},{"expression":{"id":79649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79643,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5685:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5692:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"5685:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79646,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5710:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5715:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":83528,"src":"5710:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$83072_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":79648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5710:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"5685:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":79650,"nodeType":"ExpressionStatement","src":"5685:58:165"},{"expression":{"id":79660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79651,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5753:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5760:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"5753:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79656,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79523,"src":"5787:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79657,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"5801:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79658,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79527,"src":"5820:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79654,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"5772:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5777:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":83175,"src":"5772:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$83175_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":79659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5772:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"5753:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":79661,"nodeType":"ExpressionStatement","src":"5753:84:165"},{"expression":{"id":79672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79662,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5847:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5854:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"5847:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5867:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"5847:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":79669,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79535,"src":"5890:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5902:6:165","memberName":"length","nodeType":"MemberAccess","src":"5890:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5883:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79667,"name":"uint16","nodeType":"ElementaryTypeName","src":"5883:6:165","typeDescriptions":{}}},"id":79671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5883:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5847:62:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79673,"nodeType":"ExpressionStatement","src":"5847:62:165"},{"assignments":[79675],"declarations":[{"constant":false,"id":79675,"mutability":"mutable","name":"decimalsFactor","nameLocation":"5928:14:165","nodeType":"VariableDeclaration","scope":79716,"src":"5920:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79674,"name":"uint256","nodeType":"ElementaryTypeName","src":"5920:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79683,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5945:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79678,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79519,"src":"5964:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79677,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"5951:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":79679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":79680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5978:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"5951:35:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5951:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5945:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5920:68:165"},{"expression":{"id":79692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79684,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"5998:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6005:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"5998:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6018:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"5998:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79689,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"6049:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79690,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79675,"src":"6092:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6049:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5998:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79693,"nodeType":"ExpressionStatement","src":"5998:108:165"},{"expression":{"id":79702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79694,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"6116:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6123:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"6116:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6136:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"6116:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79699,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79501,"src":"6168:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79700,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79675,"src":"6212:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6168:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6116:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79703,"nodeType":"ExpressionStatement","src":"6116:110:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":79705,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79602,"src":"6308:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6315:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"6308:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6334:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83183,"src":"6308:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"}},{"hexValue":"74727565","id":79708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6359:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":79709,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79530,"src":"6377:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":79710,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79532,"src":"6411:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79711,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79535,"src":"6459:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":79712,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6484:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6490:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"6484:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79704,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82240,"src":"6278:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$82928_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$82907_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":79714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6278:231:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79715,"nodeType":"ExpressionStatement","src":"6278:231:165"}]},"documentation":{"id":79513,"nodeType":"StructuredDocumentation","src":"2870:1173:165","text":" @dev Initializes the `Router` with the given parameters.\n @param _owner The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\n @param _mirror The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\n @param _wrappedVara The address of the `WrappedVara` (WVARA) ERC20 token contract.\n @param _middleware The address of the middleware contract.\n @param _eraDuration The duration of an era in seconds.\n @param _electionDuration The duration of an election in seconds.\n @param _validationDelay The delay before validators can start validating in seconds.\n @param _aggregatedPublicKey The optional aggregated public key of the initial validators. Will be used in future.\n @param _verifiableSecretSharingCommitment The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\n @param _validators The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures,\n so the list of validators is used for signature verification."},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":79538,"kind":"modifierInvocation","modifierName":{"id":79537,"name":"initializer","nameLocations":["4451:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"4451:11:165"},"nodeType":"ModifierInvocation","src":"4451:11:165"}],"name":"initialize","nameLocation":"4057:10:165","parameters":{"id":79536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79515,"mutability":"mutable","name":"_owner","nameLocation":"4085:6:165","nodeType":"VariableDeclaration","scope":79717,"src":"4077:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79514,"name":"address","nodeType":"ElementaryTypeName","src":"4077:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79517,"mutability":"mutable","name":"_mirror","nameLocation":"4109:7:165","nodeType":"VariableDeclaration","scope":79717,"src":"4101:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79516,"name":"address","nodeType":"ElementaryTypeName","src":"4101:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79519,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4134:12:165","nodeType":"VariableDeclaration","scope":79717,"src":"4126:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79518,"name":"address","nodeType":"ElementaryTypeName","src":"4126:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79521,"mutability":"mutable","name":"_middleware","nameLocation":"4164:11:165","nodeType":"VariableDeclaration","scope":79717,"src":"4156:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79520,"name":"address","nodeType":"ElementaryTypeName","src":"4156:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79523,"mutability":"mutable","name":"_eraDuration","nameLocation":"4193:12:165","nodeType":"VariableDeclaration","scope":79717,"src":"4185:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4185:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79525,"mutability":"mutable","name":"_electionDuration","nameLocation":"4223:17:165","nodeType":"VariableDeclaration","scope":79717,"src":"4215:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79524,"name":"uint256","nodeType":"ElementaryTypeName","src":"4215:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79527,"mutability":"mutable","name":"_validationDelay","nameLocation":"4258:16:165","nodeType":"VariableDeclaration","scope":79717,"src":"4250:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79526,"name":"uint256","nodeType":"ElementaryTypeName","src":"4250:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79530,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4318:20:165","nodeType":"VariableDeclaration","scope":79717,"src":"4284:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79529,"nodeType":"UserDefinedTypeName","pathNode":{"id":79528,"name":"Gear.AggregatedPublicKey","nameLocations":["4284:4:165","4289:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"4284:24:165"},"referencedDeclaration":82907,"src":"4284:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":79532,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4363:34:165","nodeType":"VariableDeclaration","scope":79717,"src":"4348:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79531,"name":"bytes","nodeType":"ElementaryTypeName","src":"4348:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79535,"mutability":"mutable","name":"_validators","nameLocation":"4426:11:165","nodeType":"VariableDeclaration","scope":79717,"src":"4407:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79533,"name":"address","nodeType":"ElementaryTypeName","src":"4407:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79534,"nodeType":"ArrayTypeName","src":"4407:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4067:376:165"},"returnParameters":{"id":79539,"nodeType":"ParameterList","parameters":[],"src":"4463:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79812,"nodeType":"FunctionDefinition","src":"6888:3024:165","nodes":[],"body":{"id":79811,"nodeType":"Block","src":"6946:2966:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79727,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"9219:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9219:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79726,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"9204:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9204:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79730,"nodeType":"ExpressionStatement","src":"9204:23:165"},{"expression":{"arguments":[{"id":79732,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79492,"src":"9251:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79733,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"9264:14:165","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":79731,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"9237:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9237:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79735,"nodeType":"ExpressionStatement","src":"9237:42:165"},{"assignments":[79738],"declarations":[{"constant":false,"id":79738,"mutability":"mutable","name":"router","nameLocation":"9306:6:165","nodeType":"VariableDeclaration","scope":79811,"src":"9290:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79737,"nodeType":"UserDefinedTypeName","pathNode":{"id":79736,"name":"Storage","nameLocations":["9290:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"9290:7:165"},"referencedDeclaration":74490,"src":"9290:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79741,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79739,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"9315:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9315:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9290:34:165"},{"expression":{"id":79748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79742,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9334:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9341:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"9334:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79745,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9356:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9361:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83551,"src":"9356:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83080_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9356:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9334:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79749,"nodeType":"ExpressionStatement","src":"9334:39:165"},{"expression":{"id":79761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79750,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9383:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9390:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"9383:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":79757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9452:1:165","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":79756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9444:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9444:7:165","typeDescriptions":{}}},"id":79758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9444:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":79759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9467:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":79753,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9413:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9418:18:165","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":83066,"src":"9413:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$83066_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":79760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9438:4:165","9456:9:165"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"9413:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"9383:87:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79762,"nodeType":"ExpressionStatement","src":"9383:87:165"},{"expression":{"id":79777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79763,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9480:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9487:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9480:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9500:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"9480:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79772,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9549:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79770,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"9523:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9528:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"9523:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9523:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9557:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"9523:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9562:6:165","memberName":"length","nodeType":"MemberAccess","src":"9523:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79768,"name":"uint16","nodeType":"ElementaryTypeName","src":"9516:6:165","typeDescriptions":{}}},"id":79776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9516:53:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9480:89:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79778,"nodeType":"ExpressionStatement","src":"9480:89:165"},{"assignments":[79780],"declarations":[{"constant":false,"id":79780,"mutability":"mutable","name":"decimalsFactor","nameLocation":"9587:14:165","nodeType":"VariableDeclaration","scope":79811,"src":"9579:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79779,"name":"uint256","nodeType":"ElementaryTypeName","src":"9579:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79790,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9604:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":79783,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9630:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"9623:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9644:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"9623:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79782,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"9610:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":79786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9610:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":79787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9657:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"9610:55:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9610:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9604:63:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9579:88:165"},{"expression":{"id":79799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79791,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9677:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9684:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9677:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9697:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"9677:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79796,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"9728:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79797,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79780,"src":"9771:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9728:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9677:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79800,"nodeType":"ExpressionStatement","src":"9677:108:165"},{"expression":{"id":79809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79801,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79738,"src":"9795:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9802:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"9795:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9815:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"9795:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79806,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79501,"src":"9847:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79807,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79780,"src":"9891:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9847:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9795:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79810,"nodeType":"ExpressionStatement","src":"9795:110:165"}]},"documentation":{"id":79718,"nodeType":"StructuredDocumentation","src":"6574:309:165","text":" @dev Reinitializes the `Router` to set up new storage layout.\n This function is intended to be called during an upgrade/wipe and can contain any logic.\n NOTE: Don't forget to bump `reinitializer(version)` in modifier!\n @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":79721,"kind":"modifierInvocation","modifierName":{"id":79720,"name":"onlyOwner","nameLocations":["6919:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"6919:9:165"},"nodeType":"ModifierInvocation","src":"6919:9:165"},{"arguments":[{"hexValue":"35","id":79723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6943:1:165","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":79724,"kind":"modifierInvocation","modifierName":{"id":79722,"name":"reinitializer","nameLocations":["6929:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"6929:13:165"},"nodeType":"ModifierInvocation","src":"6929:16:165"}],"name":"reinitialize","nameLocation":"6897:12:165","parameters":{"id":79719,"nodeType":"ParameterList","parameters":[],"src":"6909:2:165"},"returnParameters":{"id":79725,"nodeType":"ParameterList","parameters":[],"src":"6946:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79822,"nodeType":"FunctionDefinition","src":"10077:84:165","nodes":[],"body":{"id":79821,"nodeType":"Block","src":"10159:2:165","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79813,"nodeType":"StructuredDocumentation","src":"9918:154:165","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":79819,"kind":"modifierInvocation","modifierName":{"id":79818,"name":"onlyOwner","nameLocations":["10149:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"10149:9:165"},"nodeType":"ModifierInvocation","src":"10149:9:165"}],"name":"_authorizeUpgrade","nameLocation":"10086:17:165","overrides":{"id":79817,"nodeType":"OverrideSpecifier","overrides":[],"src":"10140:8:165"},"parameters":{"id":79816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79815,"mutability":"mutable","name":"newImplementation","nameLocation":"10112:17:165","nodeType":"VariableDeclaration","scope":79822,"src":"10104:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79814,"name":"address","nodeType":"ElementaryTypeName","src":"10104:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10103:27:165"},"returnParameters":{"id":79820,"nodeType":"ParameterList","parameters":[],"src":"10159:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79876,"nodeType":"FunctionDefinition","src":"10333:948:165","nodes":[],"body":{"id":79875,"nodeType":"Block","src":"10397:884:165","nodes":[],"statements":[{"assignments":[79831],"declarations":[{"constant":false,"id":79831,"mutability":"mutable","name":"router","nameLocation":"10423:6:165","nodeType":"VariableDeclaration","scope":79875,"src":"10407:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79830,"nodeType":"UserDefinedTypeName","pathNode":{"id":79829,"name":"Storage","nameLocations":["10407:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"10407:7:165"},"referencedDeclaration":74490,"src":"10407:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79834,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79832,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"10432:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10432:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10407:34:165"},{"assignments":[79839],"declarations":[{"constant":false,"id":79839,"mutability":"mutable","name":"validationSettings","nameLocation":"10486:18:165","nodeType":"VariableDeclaration","scope":79875,"src":"10451:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":79838,"nodeType":"UserDefinedTypeName","pathNode":{"id":79837,"name":"Gear.ValidationSettingsView","nameLocations":["10451:4:165","10456:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":83199,"src":"10451:27:165"},"referencedDeclaration":83199,"src":"10451:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":79845,"initialValue":{"arguments":[{"expression":{"id":79842,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10519:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10526:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"10519:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":79840,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"10507:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10512:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":84098,"src":"10507:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$83187_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$83199_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":79844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10507:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"10451:94:165"},{"expression":{"arguments":[{"expression":{"id":79847,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10602:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10609:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"10602:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":79849,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10657:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10664:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"10657:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":79851,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10713:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10720:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"10713:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":79853,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79839,"src":"10767:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":79854,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10816:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79855,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10823:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"10816:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":79856,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10863:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10870:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"10863:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":79858,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10908:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79859,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10915:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"10908:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10928:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"10908:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79861,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"10976:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10983:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"10976:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10996:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"10976:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79864,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11044:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11051:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11044:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11064:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"11044:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":79867,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11121:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11128:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11121:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11141:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"11121:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79870,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"11214:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11221:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"11214:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11234:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"11214:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$83199_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79846,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74457,"src":"10562:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$74457_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":79873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10588:12:165","10635:20:165","10698:13:165","10747:18:165","10799:15:165","10852:9:165","10893:13:165","10955:19:165","11029:13:165","11091:28:165","11183:29:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee"],"nodeType":"FunctionCall","src":"10562:712:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":79828,"id":79874,"nodeType":"Return","src":"10555:719:165"}]},"baseFunctions":[74648],"documentation":{"id":79823,"nodeType":"StructuredDocumentation","src":"10186:142:165","text":" @dev Returns the storage view of the contract storage.\n @return storageView The storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"10342:11:165","parameters":{"id":79824,"nodeType":"ParameterList","parameters":[],"src":"10353:2:165"},"returnParameters":{"id":79828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79876,"src":"10377:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":79826,"nodeType":"UserDefinedTypeName","pathNode":{"id":79825,"name":"StorageView","nameLocations":["10377:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":74457,"src":"10377:11:165"},"referencedDeclaration":74457,"src":"10377:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74457_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"10376:20:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79888,"nodeType":"FunctionDefinition","src":"11417:109:165","nodes":[],"body":{"id":79887,"nodeType":"Block","src":"11475:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79882,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"11492:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11492:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11502:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"11492:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11515:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"11492:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79881,"id":79886,"nodeType":"Return","src":"11485:34:165"}]},"baseFunctions":[74654],"documentation":{"id":79877,"nodeType":"StructuredDocumentation","src":"11287:125:165","text":" @dev Returns the hash of the genesis block.\n @return genesisBlockHash The hash of the genesis block."},"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"11426:16:165","parameters":{"id":79878,"nodeType":"ParameterList","parameters":[],"src":"11442:2:165"},"returnParameters":{"id":79881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79888,"src":"11466:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11466:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11465:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79900,"nodeType":"FunctionDefinition","src":"11672:113:165","nodes":[],"body":{"id":79899,"nodeType":"Block","src":"11729:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79894,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"11746:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11746:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11756:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"11746:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11769:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"11746:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79893,"id":79898,"nodeType":"Return","src":"11739:39:165"}]},"baseFunctions":[74660],"documentation":{"id":79889,"nodeType":"StructuredDocumentation","src":"11532:135:165","text":" @dev Returns the timestamp of the genesis block.\n @return genesisTimestamp The timestamp of the genesis block."},"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"11681:16:165","parameters":{"id":79890,"nodeType":"ParameterList","parameters":[],"src":"11697:2:165"},"returnParameters":{"id":79893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79900,"src":"11721:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79891,"name":"uint48","nodeType":"ElementaryTypeName","src":"11721:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11720:8:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79912,"nodeType":"FunctionDefinition","src":"11947:125:165","nodes":[],"body":{"id":79911,"nodeType":"Block","src":"12013:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79906,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12030:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12030:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12040:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"12030:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12061:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"12030:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79905,"id":79910,"nodeType":"Return","src":"12023:42:165"}]},"baseFunctions":[74666],"documentation":{"id":79901,"nodeType":"StructuredDocumentation","src":"11791:151:165","text":" @dev Returns the hash of the latest committed batch.\n @return latestCommittedBatchHash The hash of the latest committed batch."},"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"11956:24:165","parameters":{"id":79902,"nodeType":"ParameterList","parameters":[],"src":"11980:2:165"},"returnParameters":{"id":79905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79912,"src":"12004:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12004:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12003:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79924,"nodeType":"FunctionDefinition","src":"12249:134:165","nodes":[],"body":{"id":79923,"nodeType":"Block","src":"12319:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79918,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12336:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12336:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12346:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"12336:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12367:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"12336:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79917,"id":79922,"nodeType":"Return","src":"12329:47:165"}]},"baseFunctions":[74672],"documentation":{"id":79913,"nodeType":"StructuredDocumentation","src":"12078:166:165","text":" @dev Returns the timestamp of the latest committed batch.\n @return latestCommittedBatchTimestamp The timestamp of the latest committed batch."},"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"12258:29:165","parameters":{"id":79914,"nodeType":"ParameterList","parameters":[],"src":"12287:2:165"},"returnParameters":{"id":79917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79924,"src":"12311:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79915,"name":"uint48","nodeType":"ElementaryTypeName","src":"12311:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12310:8:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79936,"nodeType":"FunctionDefinition","src":"12535:106:165","nodes":[],"body":{"id":79935,"nodeType":"Block","src":"12587:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79930,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12604:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12604:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12614:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"12604:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12628:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"12604:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79929,"id":79934,"nodeType":"Return","src":"12597:37:165"}]},"baseFunctions":[74678],"documentation":{"id":79925,"nodeType":"StructuredDocumentation","src":"12389:141:165","text":" @dev Returns the address of the mirror implementation.\n @return mirrorImpl The address of the mirror implementation."},"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"12544:10:165","parameters":{"id":79926,"nodeType":"ParameterList","parameters":[],"src":"12554:2:165"},"returnParameters":{"id":79929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79936,"src":"12578:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79927,"name":"address","nodeType":"ElementaryTypeName","src":"12578:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12577:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79948,"nodeType":"FunctionDefinition","src":"12806:112:165","nodes":[],"body":{"id":79947,"nodeType":"Block","src":"12859:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79942,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"12876:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12876:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12886:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"12876:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12900:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"12876:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79941,"id":79946,"nodeType":"Return","src":"12869:42:165"}]},"baseFunctions":[74684],"documentation":{"id":79937,"nodeType":"StructuredDocumentation","src":"12647:154:165","text":" @dev Returns the address of the wrapped Vara implementation.\n @return wrappedVara The address of the wrapped Vara implementation."},"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"12815:11:165","parameters":{"id":79938,"nodeType":"ParameterList","parameters":[],"src":"12826:2:165"},"returnParameters":{"id":79941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79948,"src":"12850:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79939,"name":"address","nodeType":"ElementaryTypeName","src":"12850:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12849:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79960,"nodeType":"FunctionDefinition","src":"13078:110:165","nodes":[],"body":{"id":79959,"nodeType":"Block","src":"13130:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79954,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"13147:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13147:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13157:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"13147:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13171:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":82950,"src":"13147:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79953,"id":79958,"nodeType":"Return","src":"13140:41:165"}]},"baseFunctions":[74690],"documentation":{"id":79949,"nodeType":"StructuredDocumentation","src":"12924:149:165","text":" @dev Returns the address of the middleware implementation.\n @return middleware The address of the middleware implementation."},"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"13087:10:165","parameters":{"id":79950,"nodeType":"ParameterList","parameters":[],"src":"13097:2:165"},"returnParameters":{"id":79953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79960,"src":"13121:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79951,"name":"address","nodeType":"ElementaryTypeName","src":"13121:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13120:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79975,"nodeType":"FunctionDefinition","src":"13381:175:165","nodes":[],"body":{"id":79974,"nodeType":"Block","src":"13476:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79969,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"13519:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13519:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79967,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"13493:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13498:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"13493:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13493:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13530:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"13493:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":79966,"id":79973,"nodeType":"Return","src":"13486:63:165"}]},"baseFunctions":[74697],"documentation":{"id":79961,"nodeType":"StructuredDocumentation","src":"13194:182:165","text":" @dev Returns the aggregated public key of the current validators.\n @return validatorsAggregatedPublicKey The aggregated public key of the current validators."},"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"13390:29:165","parameters":{"id":79962,"nodeType":"ParameterList","parameters":[],"src":"13419:2:165"},"returnParameters":{"id":79966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79975,"src":"13443:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79964,"nodeType":"UserDefinedTypeName","pathNode":{"id":79963,"name":"Gear.AggregatedPublicKey","nameLocations":["13443:4:165","13448:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"13443:24:165"},"referencedDeclaration":82907,"src":"13443:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"13442:33:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79992,"nodeType":"FunctionDefinition","src":"14022:207:165","nodes":[],"body":{"id":79991,"nodeType":"Block","src":"14114:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79985,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"14170:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14170:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79983,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"14144:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":79984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14149:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"14144:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14144:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14181:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"14144:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79981,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"14131:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84555_$","typeString":"type(library SSTORE2)"}},"id":79982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14139:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":84528,"src":"14131:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":79989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14131:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":79980,"id":79990,"nodeType":"Return","src":"14124:98:165"}]},"baseFunctions":[74703],"documentation":{"id":79976,"nodeType":"StructuredDocumentation","src":"13562:455:165","text":" @dev Returns the verifiable secret sharing commitment of the current validators.\n This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct.\n See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\n @return validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."},"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"14031:43:165","parameters":{"id":79977,"nodeType":"ParameterList","parameters":[],"src":"14074:2:165"},"returnParameters":{"id":79980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79992,"src":"14100:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":79978,"name":"bytes","nodeType":"ElementaryTypeName","src":"14100:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14099:14:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80039,"nodeType":"FunctionDefinition","src":"14401:375:165","nodes":[],"body":{"id":80038,"nodeType":"Block","src":"14483:293:165","nodes":[],"statements":[{"assignments":[80005],"declarations":[{"constant":false,"id":80005,"mutability":"mutable","name":"_currentValidators","nameLocation":"14517:18:165","nodeType":"VariableDeclaration","scope":80038,"src":"14493:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80004,"nodeType":"UserDefinedTypeName","pathNode":{"id":80003,"name":"Gear.Validators","nameLocations":["14493:4:165","14498:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"14493:15:165"},"referencedDeclaration":82928,"src":"14493:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80011,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80008,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"14564:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14564:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80006,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"14538:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14543:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"14538:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14538:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14493:81:165"},{"body":{"id":80034,"nodeType":"Block","src":"14634:114:165","statements":[{"condition":{"id":80029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14652:39:165","subExpression":{"baseExpression":{"expression":{"id":80023,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80005,"src":"14653:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14672:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"14653:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80028,"indexExpression":{"baseExpression":{"id":80025,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79996,"src":"14676:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80027,"indexExpression":{"id":80026,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14688:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14676:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14653:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80033,"nodeType":"IfStatement","src":"14648:90:165","trueBody":{"id":80032,"nodeType":"Block","src":"14693:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":80030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14718:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80000,"id":80031,"nodeType":"Return","src":"14711:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80016,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14605:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80017,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79996,"src":"14609:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14621:6:165","memberName":"length","nodeType":"MemberAccess","src":"14609:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14605:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80035,"initializationExpression":{"assignments":[80013],"declarations":[{"constant":false,"id":80013,"mutability":"mutable","name":"i","nameLocation":"14598:1:165","nodeType":"VariableDeclaration","scope":80035,"src":"14590:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80012,"name":"uint256","nodeType":"ElementaryTypeName","src":"14590:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80015,"initialValue":{"hexValue":"30","id":80014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14602:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14590:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14629:3:165","subExpression":{"id":80020,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80013,"src":"14629:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80022,"nodeType":"ExpressionStatement","src":"14629:3:165"},"nodeType":"ForStatement","src":"14585:163:165"},{"expression":{"hexValue":"74727565","id":80036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14765:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80000,"id":80037,"nodeType":"Return","src":"14758:11:165"}]},"baseFunctions":[74712],"documentation":{"id":79993,"nodeType":"StructuredDocumentation","src":"14235:161:165","text":" @dev Checks if the given addresses are all validators.\n @return areValidators `true` if all addresses are validators, `false` otherwise."},"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"14410:13:165","parameters":{"id":79997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79996,"mutability":"mutable","name":"_validators","nameLocation":"14443:11:165","nodeType":"VariableDeclaration","scope":80039,"src":"14424:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79994,"name":"address","nodeType":"ElementaryTypeName","src":"14424:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79995,"nodeType":"ArrayTypeName","src":"14424:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14423:32:165"},"returnParameters":{"id":80000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80039,"src":"14477:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79998,"name":"bool","nodeType":"ElementaryTypeName","src":"14477:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14476:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80057,"nodeType":"FunctionDefinition","src":"14938:144:165","nodes":[],"body":{"id":80056,"nodeType":"Block","src":"15006:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80049,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15049:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15049:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80047,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"15023:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15028:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"15023:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15023:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15060:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"15023:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80054,"indexExpression":{"id":80053,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80042,"src":"15064:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15023:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80046,"id":80055,"nodeType":"Return","src":"15016:59:165"}]},"baseFunctions":[74720],"documentation":{"id":80040,"nodeType":"StructuredDocumentation","src":"14782:151:165","text":" @dev Checks if the given address is a validator.\n @return isValidator `true` if the address is a validator, `false` otherwise."},"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"14947:11:165","parameters":{"id":80043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80042,"mutability":"mutable","name":"_validator","nameLocation":"14967:10:165","nodeType":"VariableDeclaration","scope":80057,"src":"14959:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80041,"name":"address","nodeType":"ElementaryTypeName","src":"14959:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14958:20:165"},"returnParameters":{"id":80046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80045,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80057,"src":"15000:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80044,"name":"bool","nodeType":"ElementaryTypeName","src":"15000:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14999:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80082,"nodeType":"FunctionDefinition","src":"15326:285:165","nodes":[],"body":{"id":80081,"nodeType":"Block","src":"15441:170:165","nodes":[],"statements":[{"assignments":[80069],"declarations":[{"constant":false,"id":80069,"mutability":"mutable","name":"router","nameLocation":"15475:6:165","nodeType":"VariableDeclaration","scope":80081,"src":"15451:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80068,"nodeType":"UserDefinedTypeName","pathNode":{"id":80067,"name":"IRouter.Storage","nameLocations":["15451:7:165","15459:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"15451:15:165"},"referencedDeclaration":74490,"src":"15451:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80072,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80070,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15484:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15484:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15451:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":80073,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80069,"src":"15511:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15518:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"15511:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15537:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"15511:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80076,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80069,"src":"15557:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15564:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"15557:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15583:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"15557:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80079,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15510:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":80064,"id":80080,"nodeType":"Return","src":"15503:101:165"}]},"baseFunctions":[74728],"documentation":{"id":80058,"nodeType":"StructuredDocumentation","src":"15088:233:165","text":" @dev Returns the signing threshold fraction.\n @return thresholdNumerator The numerator of the signing threshold fraction.\n @return thresholdDenominator The denominator of the signing threshold fraction."},"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"15335:24:165","parameters":{"id":80059,"nodeType":"ParameterList","parameters":[],"src":"15359:2:165"},"returnParameters":{"id":80064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80061,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15391:18:165","nodeType":"VariableDeclaration","scope":80082,"src":"15383:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80060,"name":"uint128","nodeType":"ElementaryTypeName","src":"15383:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80063,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15419:20:165","nodeType":"VariableDeclaration","scope":80082,"src":"15411:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80062,"name":"uint128","nodeType":"ElementaryTypeName","src":"15411:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"15382:58:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80097,"nodeType":"FunctionDefinition","src":"15743:126:165","nodes":[],"body":{"id":80096,"nodeType":"Block","src":"15804:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80091,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"15847:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15847:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80089,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"15821:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15826:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"15821:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15821:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15858:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"15821:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":80088,"id":80095,"nodeType":"Return","src":"15814:48:165"}]},"baseFunctions":[74735],"documentation":{"id":80083,"nodeType":"StructuredDocumentation","src":"15617:121:165","text":" @dev Returns the list of current validators.\n @return validators The list of current validators."},"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"15752:10:165","parameters":{"id":80084,"nodeType":"ParameterList","parameters":[],"src":"15762:2:165"},"returnParameters":{"id":80088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80097,"src":"15786:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80085,"name":"address","nodeType":"ElementaryTypeName","src":"15786:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80086,"nodeType":"ArrayTypeName","src":"15786:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15785:18:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80112,"nodeType":"FunctionDefinition","src":"16008:129:165","nodes":[],"body":{"id":80111,"nodeType":"Block","src":"16065:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80105,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"16108:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16108:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80103,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16082:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16087:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"16082:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16082:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16119:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"16082:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16124:6:165","memberName":"length","nodeType":"MemberAccess","src":"16082:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80102,"id":80110,"nodeType":"Return","src":"16075:55:165"}]},"baseFunctions":[74741],"documentation":{"id":80098,"nodeType":"StructuredDocumentation","src":"15875:128:165","text":" @dev Returns the count of current validators.\n @return validatorsCount The count of current validators."},"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"16017:15:165","parameters":{"id":80099,"nodeType":"ParameterList","parameters":[],"src":"16032:2:165"},"returnParameters":{"id":80102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80112,"src":"16056:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80100,"name":"uint256","nodeType":"ElementaryTypeName","src":"16056:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16055:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80143,"nodeType":"FunctionDefinition","src":"16338:348:165","nodes":[],"body":{"id":80142,"nodeType":"Block","src":"16399:287:165","nodes":[],"statements":[{"assignments":[80122],"declarations":[{"constant":false,"id":80122,"mutability":"mutable","name":"router","nameLocation":"16433:6:165","nodeType":"VariableDeclaration","scope":80142,"src":"16409:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80121,"nodeType":"UserDefinedTypeName","pathNode":{"id":80120,"name":"IRouter.Storage","nameLocations":["16409:7:165","16417:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"16409:15:165"},"referencedDeclaration":74490,"src":"16409:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80125,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80123,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"16442:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16442:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16409:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":80130,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16532:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80128,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16506:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16511:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83818,"src":"16506:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16506:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16540:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"16506:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16545:6:165","memberName":"length","nodeType":"MemberAccess","src":"16506:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80134,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16565:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16572:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"16565:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16591:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83178,"src":"16565:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80137,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80122,"src":"16623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16630:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74477,"src":"16623:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83187_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16649:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83180,"src":"16623:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":80126,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"16468:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16473:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":83986,"src":"16468:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":80140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80117,"id":80141,"nodeType":"Return","src":"16461:218:165"}]},"baseFunctions":[74747],"documentation":{"id":80113,"nodeType":"StructuredDocumentation","src":"16143:190:165","text":" @dev Returns the threshold number of validators required for a valid signature.\n @return threshold The threshold number of validators required for a valid signature."},"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"16347:19:165","parameters":{"id":80114,"nodeType":"ParameterList","parameters":[],"src":"16366:2:165"},"returnParameters":{"id":80117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80143,"src":"16390:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80115,"name":"uint256","nodeType":"ElementaryTypeName","src":"16390:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16389:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80157,"nodeType":"FunctionDefinition","src":"16858:122:165","nodes":[],"body":{"id":80156,"nodeType":"Block","src":"16942:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":80152,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"16959:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$82353_$","typeString":"type(contract super Router)"}},"id":80153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16965:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43784,"src":"16959:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":80154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16959:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80151,"id":80155,"nodeType":"Return","src":"16952:21:165"}]},"baseFunctions":[43784,74753],"documentation":{"id":80144,"nodeType":"StructuredDocumentation","src":"16692:161:165","text":" @dev Returns true if the contract is paused, and false otherwise.\n @return isPaused `true` if the contract is paused, `false` otherwise."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"16867:6:165","overrides":{"id":80148,"nodeType":"OverrideSpecifier","overrides":[{"id":80146,"name":"IRouter","nameLocations":["16897:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"16897:7:165"},{"id":80147,"name":"PausableUpgradeable","nameLocations":["16906:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"16906:19:165"}],"src":"16888:38:165"},"parameters":{"id":80145,"nodeType":"ParameterList","parameters":[],"src":"16873:2:165"},"returnParameters":{"id":80151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80157,"src":"16936:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80149,"name":"bool","nodeType":"ElementaryTypeName","src":"16936:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16935:6:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80169,"nodeType":"FunctionDefinition","src":"17105:130:165","nodes":[],"body":{"id":80168,"nodeType":"Block","src":"17186:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80164,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17203:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17203:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17213:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74481,"src":"17203:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":80163,"id":80167,"nodeType":"Return","src":"17196:32:165"}]},"baseFunctions":[74760],"documentation":{"id":80158,"nodeType":"StructuredDocumentation","src":"16986:114:165","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17114:15:165","parameters":{"id":80159,"nodeType":"ParameterList","parameters":[],"src":"17129:2:165"},"returnParameters":{"id":80163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80169,"src":"17153:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":80161,"nodeType":"UserDefinedTypeName","pathNode":{"id":80160,"name":"Gear.ComputationSettings","nameLocations":["17153:4:165","17158:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83072,"src":"17153:24:165"},"referencedDeclaration":83072,"src":"17153:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83072_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17152:33:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80186,"nodeType":"FunctionDefinition","src":"17344:134:165","nodes":[],"body":{"id":80185,"nodeType":"Block","src":"17417:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80178,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17434:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17434:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17444:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"17434:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17457:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"17434:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80183,"indexExpression":{"id":80182,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80172,"src":"17463:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17434:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"functionReturnParameters":80177,"id":80184,"nodeType":"Return","src":"17427:44:165"}]},"baseFunctions":[74769],"documentation":{"id":80170,"nodeType":"StructuredDocumentation","src":"17241:98:165","text":" @dev Returns the state of code.\n @return codeState The state of the code."},"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"17353:9:165","parameters":{"id":80173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80172,"mutability":"mutable","name":"_codeId","nameLocation":"17371:7:165","nodeType":"VariableDeclaration","scope":80186,"src":"17363:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17363:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17362:17:165"},"returnParameters":{"id":80177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80186,"src":"17401:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"typeName":{"id":80175,"nodeType":"UserDefinedTypeName","pathNode":{"id":80174,"name":"Gear.CodeState","nameLocations":["17401:4:165","17406:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17401:14:165"},"referencedDeclaration":83060,"src":"17401:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"17400:16:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80245,"nodeType":"FunctionDefinition","src":"17602:378:165","nodes":[],"body":{"id":80244,"nodeType":"Block","src":"17699:281:165","nodes":[],"statements":[{"assignments":[80199],"declarations":[{"constant":false,"id":80199,"mutability":"mutable","name":"router","nameLocation":"17725:6:165","nodeType":"VariableDeclaration","scope":80244,"src":"17709:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80198,"nodeType":"UserDefinedTypeName","pathNode":{"id":80197,"name":"Storage","nameLocations":["17709:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"17709:7:165"},"referencedDeclaration":74490,"src":"17709:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80202,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80200,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"17734:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17734:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17709:34:165"},{"assignments":[80208],"declarations":[{"constant":false,"id":80208,"mutability":"mutable","name":"res","nameLocation":"17778:3:165","nodeType":"VariableDeclaration","scope":80244,"src":"17754:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80206,"nodeType":"UserDefinedTypeName","pathNode":{"id":80205,"name":"Gear.CodeState","nameLocations":["17754:4:165","17759:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17754:14:165"},"referencedDeclaration":83060,"src":"17754:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80207,"nodeType":"ArrayTypeName","src":"17754:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":80216,"initialValue":{"arguments":[{"expression":{"id":80213,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17805:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17815:6:165","memberName":"length","nodeType":"MemberAccess","src":"17805:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17784:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":80210,"nodeType":"UserDefinedTypeName","pathNode":{"id":80209,"name":"Gear.CodeState","nameLocations":["17788:4:165","17793:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17788:14:165"},"referencedDeclaration":83060,"src":"17788:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80211,"nodeType":"ArrayTypeName","src":"17788:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":80215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17784:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17754:68:165"},{"body":{"id":80240,"nodeType":"Block","src":"17880:73:165","statements":[{"expression":{"id":80238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80228,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80208,"src":"17894:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":80230,"indexExpression":{"id":80229,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17898:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17894:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80231,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80199,"src":"17903:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17910:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"17903:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17923:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"17903:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80237,"indexExpression":{"baseExpression":{"id":80234,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17929:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80236,"indexExpression":{"id":80235,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17939:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17929:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17903:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"17894:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80239,"nodeType":"ExpressionStatement","src":"17894:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80221,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17853:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80222,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80190,"src":"17857:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17867:6:165","memberName":"length","nodeType":"MemberAccess","src":"17857:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17853:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80241,"initializationExpression":{"assignments":[80218],"declarations":[{"constant":false,"id":80218,"mutability":"mutable","name":"i","nameLocation":"17846:1:165","nodeType":"VariableDeclaration","scope":80241,"src":"17838:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80217,"name":"uint256","nodeType":"ElementaryTypeName","src":"17838:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80220,"initialValue":{"hexValue":"30","id":80219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17850:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17838:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17875:3:165","subExpression":{"id":80225,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80218,"src":"17875:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80227,"nodeType":"ExpressionStatement","src":"17875:3:165"},"nodeType":"ForStatement","src":"17833:120:165"},{"expression":{"id":80242,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80208,"src":"17970:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":80196,"id":80243,"nodeType":"Return","src":"17963:10:165"}]},"baseFunctions":[74780],"documentation":{"id":80187,"nodeType":"StructuredDocumentation","src":"17484:113:165","text":" @dev Returns the states of multiple codes.\n @return codesStates The states of the codes."},"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"17611:11:165","parameters":{"id":80191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80190,"mutability":"mutable","name":"_codesIds","nameLocation":"17642:9:165","nodeType":"VariableDeclaration","scope":80245,"src":"17623:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17623:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80189,"nodeType":"ArrayTypeName","src":"17623:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17622:30:165"},"returnParameters":{"id":80196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80245,"src":"17674:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80193,"nodeType":"UserDefinedTypeName","pathNode":{"id":80192,"name":"Gear.CodeState","nameLocations":["17674:4:165","17679:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83060,"src":"17674:14:165"},"referencedDeclaration":83060,"src":"17674:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80194,"nodeType":"ArrayTypeName","src":"17674:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83060_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"17673:25:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80261,"nodeType":"FunctionDefinition","src":"18106:140:165","nodes":[],"body":{"id":80260,"nodeType":"Block","src":"18179:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80253,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18196:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18196:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18206:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18196:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18219:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"18196:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80258,"indexExpression":{"id":80257,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80248,"src":"18228:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18196:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80252,"id":80259,"nodeType":"Return","src":"18189:50:165"}]},"baseFunctions":[74788],"documentation":{"id":80246,"nodeType":"StructuredDocumentation","src":"17986:115:165","text":" @dev Returns the code ID of the given program.\n @return codeId The code ID of the program."},"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"18115:13:165","parameters":{"id":80249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80248,"mutability":"mutable","name":"_programId","nameLocation":"18137:10:165","nodeType":"VariableDeclaration","scope":80261,"src":"18129:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80247,"name":"address","nodeType":"ElementaryTypeName","src":"18129:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18128:20:165"},"returnParameters":{"id":80252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80251,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80261,"src":"18170:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18170:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18169:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80317,"nodeType":"FunctionDefinition","src":"18378:376:165","nodes":[],"body":{"id":80316,"nodeType":"Block","src":"18475:279:165","nodes":[],"statements":[{"assignments":[80273],"declarations":[{"constant":false,"id":80273,"mutability":"mutable","name":"router","nameLocation":"18501:6:165","nodeType":"VariableDeclaration","scope":80316,"src":"18485:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80272,"nodeType":"UserDefinedTypeName","pathNode":{"id":80271,"name":"Storage","nameLocations":["18485:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"18485:7:165"},"referencedDeclaration":74490,"src":"18485:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80276,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80274,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18510:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18510:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18485:34:165"},{"assignments":[80281],"declarations":[{"constant":false,"id":80281,"mutability":"mutable","name":"res","nameLocation":"18547:3:165","nodeType":"VariableDeclaration","scope":80316,"src":"18530:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18530:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80280,"nodeType":"ArrayTypeName","src":"18530:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":80288,"initialValue":{"arguments":[{"expression":{"id":80285,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18567:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18580:6:165","memberName":"length","nodeType":"MemberAccess","src":"18567:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18553:13:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":80282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18557:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80283,"nodeType":"ArrayTypeName","src":"18557:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":80287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18553:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18530:57:165"},{"body":{"id":80312,"nodeType":"Block","src":"18648:79:165","statements":[{"expression":{"id":80310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80300,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80281,"src":"18662:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":80302,"indexExpression":{"id":80301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18666:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18662:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80303,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80273,"src":"18671:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18678:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18671:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18691:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"18671:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80309,"indexExpression":{"baseExpression":{"id":80306,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18700:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80308,"indexExpression":{"id":80307,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18713:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18700:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18671:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18662:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80311,"nodeType":"ExpressionStatement","src":"18662:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80293,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18618:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80294,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80265,"src":"18622:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18635:6:165","memberName":"length","nodeType":"MemberAccess","src":"18622:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18618:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80313,"initializationExpression":{"assignments":[80290],"declarations":[{"constant":false,"id":80290,"mutability":"mutable","name":"i","nameLocation":"18611:1:165","nodeType":"VariableDeclaration","scope":80313,"src":"18603:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80289,"name":"uint256","nodeType":"ElementaryTypeName","src":"18603:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80292,"initialValue":{"hexValue":"30","id":80291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18615:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18603:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18643:3:165","subExpression":{"id":80297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80290,"src":"18643:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80299,"nodeType":"ExpressionStatement","src":"18643:3:165"},"nodeType":"ForStatement","src":"18598:129:165"},{"expression":{"id":80314,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80281,"src":"18744:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":80270,"id":80315,"nodeType":"Return","src":"18737:10:165"}]},"baseFunctions":[74798],"documentation":{"id":80262,"nodeType":"StructuredDocumentation","src":"18252:121:165","text":" @dev Returns the code IDs of the given programs.\n @return codesIds The code IDs of the programs."},"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"18387:15:165","parameters":{"id":80266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80265,"mutability":"mutable","name":"_programsIds","nameLocation":"18422:12:165","nodeType":"VariableDeclaration","scope":80317,"src":"18403:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80263,"name":"address","nodeType":"ElementaryTypeName","src":"18403:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80264,"nodeType":"ArrayTypeName","src":"18403:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18402:33:165"},"returnParameters":{"id":80270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80317,"src":"18457:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18457:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80268,"nodeType":"ArrayTypeName","src":"18457:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18456:18:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80329,"nodeType":"FunctionDefinition","src":"18871:115:165","nodes":[],"body":{"id":80328,"nodeType":"Block","src":"18926:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80323,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"18943:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18943:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18953:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"18943:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18966:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"18943:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80322,"id":80327,"nodeType":"Return","src":"18936:43:165"}]},"baseFunctions":[74804],"documentation":{"id":80318,"nodeType":"StructuredDocumentation","src":"18760:106:165","text":" @dev Returns the count of programs.\n @return programsCount The count of programs."},"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"18880:13:165","parameters":{"id":80319,"nodeType":"ParameterList","parameters":[],"src":"18893:2:165"},"returnParameters":{"id":80322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80329,"src":"18917:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80320,"name":"uint256","nodeType":"ElementaryTypeName","src":"18917:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18916:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80341,"nodeType":"FunctionDefinition","src":"19123:127:165","nodes":[],"body":{"id":80340,"nodeType":"Block","src":"19184:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80335,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19201:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19201:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19211:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19201:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80338,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19224:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"19201:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80334,"id":80339,"nodeType":"Return","src":"19194:49:165"}]},"baseFunctions":[74810],"documentation":{"id":80330,"nodeType":"StructuredDocumentation","src":"18992:126:165","text":" @dev Returns the count of validated codes.\n @return validatedCodesCount The count of validated codes."},"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"19132:19:165","parameters":{"id":80331,"nodeType":"ParameterList","parameters":[],"src":"19151:2:165"},"returnParameters":{"id":80334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80341,"src":"19175:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80332,"name":"uint256","nodeType":"ElementaryTypeName","src":"19175:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19174:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80353,"nodeType":"FunctionDefinition","src":"19447:147:165","nodes":[],"body":{"id":80352,"nodeType":"Block","src":"19519:75:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80347,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19536:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19536:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19546:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19536:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19559:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"19536:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80346,"id":80351,"nodeType":"Return","src":"19529:58:165"}]},"baseFunctions":[74816],"documentation":{"id":80342,"nodeType":"StructuredDocumentation","src":"19256:186:165","text":" @dev Returns the base fee for requesting code validation in WVARA ERC20 token.\n @return requestCodeValidationBaseFee The base fee for requesting code validation."},"functionSelector":"188509e9","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationBaseFee","nameLocation":"19456:28:165","parameters":{"id":80343,"nodeType":"ParameterList","parameters":[],"src":"19484:2:165"},"returnParameters":{"id":80346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80353,"src":"19510:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80344,"name":"uint256","nodeType":"ElementaryTypeName","src":"19510:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19509:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80365,"nodeType":"FunctionDefinition","src":"19846:149:165","nodes":[],"body":{"id":80364,"nodeType":"Block","src":"19919:76:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80359,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"19936:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19936:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19946:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"19936:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19959:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"19936:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80358,"id":80363,"nodeType":"Return","src":"19929:59:165"}]},"baseFunctions":[74822],"documentation":{"id":80354,"nodeType":"StructuredDocumentation","src":"19600:241:165","text":" @dev Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @return requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."},"functionSelector":"f1ef31ec","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationExtraFee","nameLocation":"19855:29:165","parameters":{"id":80355,"nodeType":"ParameterList","parameters":[],"src":"19884:2:165"},"returnParameters":{"id":80358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80365,"src":"19910:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80356,"name":"uint256","nodeType":"ElementaryTypeName","src":"19910:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19909:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80377,"nodeType":"FunctionDefinition","src":"20092:108:165","nodes":[],"body":{"id":80376,"nodeType":"Block","src":"20157:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80372,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"20174:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20174:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20184:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"20174:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":80371,"id":80375,"nodeType":"Return","src":"20167:26:165"}]},"baseFunctions":[74829],"documentation":{"id":80366,"nodeType":"StructuredDocumentation","src":"20001:86:165","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"20101:9:165","parameters":{"id":80367,"nodeType":"ParameterList","parameters":[],"src":"20110:2:165"},"returnParameters":{"id":80371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80377,"src":"20134:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":80369,"nodeType":"UserDefinedTypeName","pathNode":{"id":80368,"name":"Gear.Timelines","nameLocations":["20134:4:165","20139:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83175,"src":"20134:14:165"},"referencedDeclaration":83175,"src":"20134:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"20133:23:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80387,"nodeType":"FunctionDefinition","src":"20374:104:165","nodes":[],"body":{"id":80386,"nodeType":"Block","src":"20434:44:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80383,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"20451:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20451:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80382,"id":80385,"nodeType":"Return","src":"20444:27:165"}]},"baseFunctions":[74835],"documentation":{"id":80378,"nodeType":"StructuredDocumentation","src":"20206:163:165","text":" @dev Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\n @return domainSeparator The domain separator."},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"20383:16:165","parameters":{"id":80379,"nodeType":"ParameterList","parameters":[],"src":"20399:2:165"},"returnParameters":{"id":80382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80387,"src":"20425:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20425:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20424:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80403,"nodeType":"FunctionDefinition","src":"20642:116:165","nodes":[],"body":{"id":80402,"nodeType":"Block","src":"20699:59:165","nodes":[],"statements":[{"expression":{"id":80400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80395,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"20709:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20709:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20719:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"20709:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20733:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":82944,"src":"20709:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80399,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80390,"src":"20742:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20709:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80401,"nodeType":"ExpressionStatement","src":"20709:42:165"}]},"baseFunctions":[74841],"documentation":{"id":80388,"nodeType":"StructuredDocumentation","src":"20509:128:165","text":" @dev Sets the `Mirror` implementation address.\n @param newMirror The new mirror implementation address."},"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":80393,"kind":"modifierInvocation","modifierName":{"id":80392,"name":"onlyOwner","nameLocations":["20689:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"20689:9:165"},"nodeType":"ModifierInvocation","src":"20689:9:165"}],"name":"setMirror","nameLocation":"20651:9:165","parameters":{"id":80391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80390,"mutability":"mutable","name":"newMirror","nameLocation":"20669:9:165","nodeType":"VariableDeclaration","scope":80403,"src":"20661:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80389,"name":"address","nodeType":"ElementaryTypeName","src":"20661:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20660:19:165"},"returnParameters":{"id":80394,"nodeType":"ParameterList","parameters":[],"src":"20699:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80419,"nodeType":"FunctionDefinition","src":"20937:161:165","nodes":[],"body":{"id":80418,"nodeType":"Block","src":"21017:81:165","nodes":[],"statements":[{"expression":{"id":80416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80411,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21027:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21027:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21037:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"21027:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21050:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"21027:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80415,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80406,"src":"21081:10:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21027:64:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80417,"nodeType":"ExpressionStatement","src":"21027:64:165"}]},"baseFunctions":[74847],"documentation":{"id":80404,"nodeType":"StructuredDocumentation","src":"20764:168:165","text":" @dev Sets the base fee for requesting code validation in WVARA ERC20 token.\n @param newBaseFee The new base fee for requesting code validation."},"functionSelector":"11bec80d","implemented":true,"kind":"function","modifiers":[{"id":80409,"kind":"modifierInvocation","modifierName":{"id":80408,"name":"onlyOwner","nameLocations":["21007:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21007:9:165"},"nodeType":"ModifierInvocation","src":"21007:9:165"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"20946:31:165","parameters":{"id":80407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80406,"mutability":"mutable","name":"newBaseFee","nameLocation":"20986:10:165","nodeType":"VariableDeclaration","scope":80419,"src":"20978:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80405,"name":"uint256","nodeType":"ElementaryTypeName","src":"20978:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20977:20:165"},"returnParameters":{"id":80410,"nodeType":"ParameterList","parameters":[],"src":"21017:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80435,"nodeType":"FunctionDefinition","src":"21332:165:165","nodes":[],"body":{"id":80434,"nodeType":"Block","src":"21414:83:165","nodes":[],"statements":[{"expression":{"id":80432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80427,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21424:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21424:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21434:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"21424:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21447:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"21424:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80431,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80422,"src":"21479:11:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21424:66:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80433,"nodeType":"ExpressionStatement","src":"21424:66:165"}]},"baseFunctions":[74853],"documentation":{"id":80420,"nodeType":"StructuredDocumentation","src":"21104:223:165","text":" @dev Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @param newExtraFee The new extra fee for requesting code validation on behalf of someone else."},"functionSelector":"0b9737ce","implemented":true,"kind":"function","modifiers":[{"id":80425,"kind":"modifierInvocation","modifierName":{"id":80424,"name":"onlyOwner","nameLocations":["21404:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21404:9:165"},"nodeType":"ModifierInvocation","src":"21404:9:165"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"21341:32:165","parameters":{"id":80423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80422,"mutability":"mutable","name":"newExtraFee","nameLocation":"21382:11:165","nodeType":"VariableDeclaration","scope":80435,"src":"21374:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80421,"name":"uint256","nodeType":"ElementaryTypeName","src":"21374:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21373:21:165"},"returnParameters":{"id":80426,"nodeType":"ParameterList","parameters":[],"src":"21414:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80445,"nodeType":"FunctionDefinition","src":"21552:59:165","nodes":[],"body":{"id":80444,"nodeType":"Block","src":"21586:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80441,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43833,"src":"21596:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21596:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80443,"nodeType":"ExpressionStatement","src":"21596:8:165"}]},"baseFunctions":[74857],"documentation":{"id":80436,"nodeType":"StructuredDocumentation","src":"21503:44:165","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":80439,"kind":"modifierInvocation","modifierName":{"id":80438,"name":"onlyOwner","nameLocations":["21576:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21576:9:165"},"nodeType":"ModifierInvocation","src":"21576:9:165"}],"name":"pause","nameLocation":"21561:5:165","parameters":{"id":80437,"nodeType":"ParameterList","parameters":[],"src":"21566:2:165"},"returnParameters":{"id":80440,"nodeType":"ParameterList","parameters":[],"src":"21586:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80455,"nodeType":"FunctionDefinition","src":"21668:63:165","nodes":[],"body":{"id":80454,"nodeType":"Block","src":"21704:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80451,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"21714:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21714:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80453,"nodeType":"ExpressionStatement","src":"21714:10:165"}]},"baseFunctions":[74861],"documentation":{"id":80446,"nodeType":"StructuredDocumentation","src":"21617:46:165","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":80449,"kind":"modifierInvocation","modifierName":{"id":80448,"name":"onlyOwner","nameLocations":["21694:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21694:9:165"},"nodeType":"ModifierInvocation","src":"21694:9:165"}],"name":"unpause","nameLocation":"21677:7:165","parameters":{"id":80447,"nodeType":"ParameterList","parameters":[],"src":"21684:2:165"},"returnParameters":{"id":80450,"nodeType":"ParameterList","parameters":[],"src":"21704:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80510,"nodeType":"FunctionDefinition","src":"21832:385:165","nodes":[],"body":{"id":80509,"nodeType":"Block","src":"21870:347:165","nodes":[],"statements":[{"assignments":[80461],"declarations":[{"constant":false,"id":80461,"mutability":"mutable","name":"router","nameLocation":"21896:6:165","nodeType":"VariableDeclaration","scope":80509,"src":"21880:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80460,"nodeType":"UserDefinedTypeName","pathNode":{"id":80459,"name":"Storage","nameLocations":["21880:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"21880:7:165"},"referencedDeclaration":74490,"src":"21880:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80464,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80462,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"21905:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21905:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21880:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80466,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"21933:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21940:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"21933:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21953:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"21933:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21969:1:165","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":80470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21961:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21961:7:165","typeDescriptions":{}}},"id":80472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21961:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21933:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80474,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74558,"src":"21973:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21973:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80465,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21925:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21925:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80477,"nodeType":"ExpressionStatement","src":"21925:72:165"},{"assignments":[80479],"declarations":[{"constant":false,"id":80479,"mutability":"mutable","name":"genesisHash","nameLocation":"22016:11:165","nodeType":"VariableDeclaration","scope":80509,"src":"22008:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22008:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80485,"initialValue":{"arguments":[{"expression":{"expression":{"id":80481,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22040:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22047:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22040:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22060:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83077,"src":"22040:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80480,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22030:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22030:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22008:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80487,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80479,"src":"22086:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22109:1:165","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":80489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22101:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22101:7:165","typeDescriptions":{}}},"id":80491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22101:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22086:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80493,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74561,"src":"22113:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22113:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22078:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22078:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80496,"nodeType":"ExpressionStatement","src":"22078:57:165"},{"expression":{"id":80507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":80497,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22146:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22153:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22146:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22166:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"22146:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80503,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80461,"src":"22183:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22190:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"22183:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22203:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83077,"src":"22183:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80502,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22173:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22173:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22146:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80508,"nodeType":"ExpressionStatement","src":"22146:64:165"}]},"baseFunctions":[74865],"documentation":{"id":80456,"nodeType":"StructuredDocumentation","src":"21756:71:165","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"21841:17:165","parameters":{"id":80457,"nodeType":"ParameterList","parameters":[],"src":"21858:2:165"},"returnParameters":{"id":80458,"nodeType":"ParameterList","parameters":[],"src":"21870:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80639,"nodeType":"FunctionDefinition","src":"23079:986:165","nodes":[],"body":{"id":80638,"nodeType":"Block","src":"23223:842:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23250:1:165","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":80527,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"23241:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23241:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23256:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23241:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80532,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74564,"src":"23259:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23233:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23233:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80535,"nodeType":"ExpressionStatement","src":"23233:41:165"},{"assignments":[80538],"declarations":[{"constant":false,"id":80538,"mutability":"mutable","name":"router","nameLocation":"23301:6:165","nodeType":"VariableDeclaration","scope":80638,"src":"23285:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80537,"nodeType":"UserDefinedTypeName","pathNode":{"id":80536,"name":"Storage","nameLocations":["23285:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"23285:7:165"},"referencedDeclaration":74490,"src":"23285:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80541,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80539,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"23310:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23310:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23285:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80543,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23337:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23344:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"23337:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23357:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"23337:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23373:1:165","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":80547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23365:7:165","typeDescriptions":{}}},"id":80549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23365:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23337:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80551,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"23377:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23377:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80542,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23329:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23329:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80554,"nodeType":"ExpressionStatement","src":"23329:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":80564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80556,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23430:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23437:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23430:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23450:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"23430:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80560,"indexExpression":{"id":80559,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"23456:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23430:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80561,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"23468:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23473:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"23468:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23483:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83055,"src":"23468:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"23430:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80565,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"23492:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23492:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80555,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23422:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23422:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80568,"nodeType":"ExpressionStatement","src":"23422:107:165"},{"assignments":[80571],"declarations":[{"constant":false,"id":80571,"mutability":"mutable","name":"_wrappedVara","nameLocation":"23553:12:165","nodeType":"VariableDeclaration","scope":80638,"src":"23540:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80570,"nodeType":"UserDefinedTypeName","pathNode":{"id":80569,"name":"IWrappedVara","nameLocations":["23540:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"23540:12:165"},"referencedDeclaration":75006,"src":"23540:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80577,"initialValue":{"arguments":[{"expression":{"expression":{"id":80573,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23581:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23588:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"23581:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23602:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"23581:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80572,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"23568:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23568:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"23540:74:165"},{"assignments":[80579],"declarations":[{"constant":false,"id":80579,"mutability":"mutable","name":"baseFee","nameLocation":"23633:7:165","nodeType":"VariableDeclaration","scope":80638,"src":"23625:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80578,"name":"uint256","nodeType":"ElementaryTypeName","src":"23625:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80583,"initialValue":{"expression":{"expression":{"id":80580,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23643:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23650:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23643:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23663:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"23643:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23625:66:165"},{"clauses":[{"block":{"id":80598,"nodeType":"Block","src":"23784:2:165","statements":[]},"errorName":"","id":80599,"nodeType":"TryCatchClause","src":"23784:2:165"},{"block":{"id":80600,"nodeType":"Block","src":"23793:2:165","statements":[]},"errorName":"","id":80601,"nodeType":"TryCatchClause","src":"23787:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80586,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23725:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23729:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23725:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80590,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23745:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23737:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80588,"name":"address","nodeType":"ElementaryTypeName","src":"23737:7:165","typeDescriptions":{}}},"id":80591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23737:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80592,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"23752:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80593,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80515,"src":"23761:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80594,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80517,"src":"23772:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80595,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80519,"src":"23776:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80596,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80521,"src":"23780:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80584,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80571,"src":"23705:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23718:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"23705:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23705:78:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80602,"nodeType":"TryStatement","src":"23701:94:165"},{"assignments":[80604],"declarations":[{"constant":false,"id":80604,"mutability":"mutable","name":"success","nameLocation":"23809:7:165","nodeType":"VariableDeclaration","scope":80638,"src":"23804:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80603,"name":"bool","nodeType":"ElementaryTypeName","src":"23804:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80615,"initialValue":{"arguments":[{"expression":{"id":80607,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23845:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23849:6:165","memberName":"sender","nodeType":"MemberAccess","src":"23845:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80611,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23865:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23857:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80609,"name":"address","nodeType":"ElementaryTypeName","src":"23857:7:165","typeDescriptions":{}}},"id":80612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23857:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80613,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80579,"src":"23872:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80605,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80571,"src":"23819:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23832:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"23819:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23819:61:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"23804:76:165"},{"expression":{"arguments":[{"id":80617,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80604,"src":"23898:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80618,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"23907:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23907:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23890:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23890:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80621,"nodeType":"ExpressionStatement","src":"23890:38:165"},{"expression":{"id":80632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80622,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80538,"src":"23939:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23946:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"23939:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23959:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"23939:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80628,"indexExpression":{"id":80625,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"23965:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23939:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80629,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"23976:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23981:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"23976:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23991:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"23976:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"23939:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80633,"nodeType":"ExpressionStatement","src":"23939:71:165"},{"eventCall":{"arguments":[{"id":80635,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80513,"src":"24050:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80634,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"24026:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24026:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80637,"nodeType":"EmitStatement","src":"24021:37:165"}]},"baseFunctions":[74879],"documentation":{"id":80511,"nodeType":"StructuredDocumentation","src":"22223:851:165","text":" @dev Requests code validation for the given code ID.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()`\n in the WVARA ERC20 token.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"8c4ace6a","implemented":true,"kind":"function","modifiers":[{"id":80524,"kind":"modifierInvocation","modifierName":{"id":80523,"name":"whenNotPaused","nameLocations":["23205:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"23205:13:165"},"nodeType":"ModifierInvocation","src":"23205:13:165"}],"name":"requestCodeValidation","nameLocation":"23088:21:165","parameters":{"id":80522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80513,"mutability":"mutable","name":"_codeId","nameLocation":"23118:7:165","nodeType":"VariableDeclaration","scope":80639,"src":"23110:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23110:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80515,"mutability":"mutable","name":"_deadline","nameLocation":"23135:9:165","nodeType":"VariableDeclaration","scope":80639,"src":"23127:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80514,"name":"uint256","nodeType":"ElementaryTypeName","src":"23127:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80517,"mutability":"mutable","name":"_v","nameLocation":"23152:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23146:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80516,"name":"uint8","nodeType":"ElementaryTypeName","src":"23146:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80519,"mutability":"mutable","name":"_r","nameLocation":"23164:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23156:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23156:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80521,"mutability":"mutable","name":"_s","nameLocation":"23176:2:165","nodeType":"VariableDeclaration","scope":80639,"src":"23168:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23168:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23109:70:165"},"returnParameters":{"id":80525,"nodeType":"ParameterList","parameters":[],"src":"23223:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80905,"nodeType":"FunctionDefinition","src":"25572:2418:165","nodes":[],"body":{"id":80904,"nodeType":"Block","src":"25882:2108:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25909:1:165","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":80667,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"25900:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25900:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25915:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25900:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80672,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74564,"src":"25918:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25918:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80666,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25892:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25892:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80675,"nodeType":"ExpressionStatement","src":"25892:41:165"},{"assignments":[80678],"declarations":[{"constant":false,"id":80678,"mutability":"mutable","name":"router","nameLocation":"25960:6:165","nodeType":"VariableDeclaration","scope":80904,"src":"25944:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80677,"nodeType":"UserDefinedTypeName","pathNode":{"id":80676,"name":"Storage","nameLocations":["25944:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"25944:7:165"},"referencedDeclaration":74490,"src":"25944:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80681,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80679,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"25969:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25969:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25944:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80683,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"25996:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26003:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"25996:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26016:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"25996:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26032:1:165","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":80687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26024:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26024:7:165","typeDescriptions":{}}},"id":80689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26024:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25996:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80691,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"26036:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80682,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25988:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25988:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80694,"nodeType":"ExpressionStatement","src":"25988:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":80704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80696,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"26089:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80697,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26096:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"26089:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26109:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"26089:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80700,"indexExpression":{"id":80699,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"26115:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26089:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80701,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"26127:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26132:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"26127:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26142:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83055,"src":"26127:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"26089:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80705,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"26151:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26151:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80695,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26081:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26081:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80708,"nodeType":"ExpressionStatement","src":"26081:107:165"},{"assignments":[80710],"declarations":[{"constant":false,"id":80710,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"26207:17:165","nodeType":"VariableDeclaration","scope":80904,"src":"26199:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80709,"name":"uint256","nodeType":"ElementaryTypeName","src":"26199:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80712,"initialValue":{"hexValue":"30","id":80711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26227:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26199:29:165"},{"body":{"id":80728,"nodeType":"Block","src":"26251:142:165","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":80715,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26278:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80714,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26269:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26269:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26308:1:165","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":80718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26300:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26300:7:165","typeDescriptions":{}}},"id":80720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26300:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26269:41:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80724,"nodeType":"IfStatement","src":"26265:85:165","trueBody":{"id":80723,"nodeType":"Block","src":"26312:38:165","statements":[{"id":80722,"nodeType":"Break","src":"26330:5:165"}]}},{"expression":{"id":80726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26363:19:165","subExpression":{"id":80725,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26363:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80727,"nodeType":"ExpressionStatement","src":"26363:19:165"}]},"condition":{"hexValue":"74727565","id":80713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"26245:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":80729,"nodeType":"WhileStatement","src":"26238:155:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80731,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26411:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26423:6:165","memberName":"length","nodeType":"MemberAccess","src":"26411:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80733,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26433:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26411:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":80736,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26476:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26488:6:165","memberName":"length","nodeType":"MemberAccess","src":"26476:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80738,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80710,"src":"26496:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80735,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74577,"src":"26452:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":80739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26452:62:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80730,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26403:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26403:112:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80741,"nodeType":"ExpressionStatement","src":"26403:112:165"},{"body":{"id":80774,"nodeType":"Block","src":"26575:174:165","statements":[{"assignments":[80754],"declarations":[{"constant":false,"id":80754,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"26597:16:165","nodeType":"VariableDeclaration","scope":80774,"src":"26589:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26589:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80758,"initialValue":{"arguments":[{"id":80756,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26625:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80755,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26616:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26616:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26589:38:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":80760,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26649:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80762,"indexExpression":{"id":80761,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26661:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26649:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80763,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80754,"src":"26667:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26649:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80766,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26701:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":80767,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26704:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80769,"indexExpression":{"id":80768,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26716:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26704:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80770,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80754,"src":"26720:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80765,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74586,"src":"26685:15:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_error_$","typeString":"function (uint256,bytes32,bytes32) pure returns (error)"}},"id":80771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26685:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80759,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26641:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26641:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80773,"nodeType":"ExpressionStatement","src":"26641:97:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80746,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26546:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80747,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"26550:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26562:6:165","memberName":"length","nodeType":"MemberAccess","src":"26550:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26546:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80775,"initializationExpression":{"assignments":[80743],"declarations":[{"constant":false,"id":80743,"mutability":"mutable","name":"i","nameLocation":"26539:1:165","nodeType":"VariableDeclaration","scope":80775,"src":"26531:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80742,"name":"uint256","nodeType":"ElementaryTypeName","src":"26531:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80745,"initialValue":{"hexValue":"30","id":80744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26543:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"26531:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26570:3:165","subExpression":{"id":80750,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80743,"src":"26570:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80752,"nodeType":"ExpressionStatement","src":"26570:3:165"},"nodeType":"ForStatement","src":"26526:223:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80777,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"26825:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26831:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"26825:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":80779,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"26844:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26825:28:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80782,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"26872:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80781,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74591,"src":"26855:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":80783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26855:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26817:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26817:66:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80785,"nodeType":"ExpressionStatement","src":"26817:66:165"},{"assignments":[80787],"declarations":[{"constant":false,"id":80787,"mutability":"mutable","name":"structHash","nameLocation":"26902:10:165","nodeType":"VariableDeclaration","scope":80904,"src":"26894:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26894:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80806,"initialValue":{"arguments":[{"arguments":[{"id":80791,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79504,"src":"26966:42:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80792,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27026:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80793,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27054:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":80797,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80647,"src":"27106:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"expression":{"id":80795,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27089:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27093:12:165","memberName":"encodePacked","nodeType":"MemberAccess","src":"27089:16:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27089:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80794,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27079:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27079:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":80801,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27147:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80800,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"27137:9:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":80802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27137:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80803,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"27176:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26938:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26942:6:165","memberName":"encode","nodeType":"MemberAccess","src":"26938:10:165","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26938:261:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80788,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"26915:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26915:294:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"26894:315:165"},{"assignments":[80808],"declarations":[{"constant":false,"id":80808,"mutability":"mutable","name":"hash","nameLocation":"27228:4:165","nodeType":"VariableDeclaration","scope":80904,"src":"27220:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27220:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80812,"initialValue":{"arguments":[{"id":80810,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80787,"src":"27252:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80809,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"27235:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":80811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27235:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27220:43:165"},{"assignments":[80814],"declarations":[{"constant":false,"id":80814,"mutability":"mutable","name":"signer","nameLocation":"27282:6:165","nodeType":"VariableDeclaration","scope":80904,"src":"27274:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80813,"name":"address","nodeType":"ElementaryTypeName","src":"27274:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80822,"initialValue":{"arguments":[{"id":80817,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80808,"src":"27305:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80818,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80651,"src":"27311:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80819,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80653,"src":"27316:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80820,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80655,"src":"27321:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80815,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"27291:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$51038_$","typeString":"type(library ECDSA)"}},"id":80816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27297:7:165","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50988,"src":"27291:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":80821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27291:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"27274:51:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80824,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80814,"src":"27343:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80825,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27353:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27343:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80828,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80814,"src":"27379:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80829,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27387:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80827,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74598,"src":"27365:13:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":80830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27365:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80823,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27335:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27335:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80832,"nodeType":"ExpressionStatement","src":"27335:64:165"},{"assignments":[80835],"declarations":[{"constant":false,"id":80835,"mutability":"mutable","name":"_wrappedVara","nameLocation":"27423:12:165","nodeType":"VariableDeclaration","scope":80904,"src":"27410:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80834,"nodeType":"UserDefinedTypeName","pathNode":{"id":80833,"name":"IWrappedVara","nameLocations":["27410:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"27410:12:165"},"referencedDeclaration":75006,"src":"27410:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80841,"initialValue":{"arguments":[{"expression":{"expression":{"id":80837,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27451:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27458:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"27451:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27472:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"27451:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80836,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"27438:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27438:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"27410:74:165"},{"assignments":[80843],"declarations":[{"constant":false,"id":80843,"mutability":"mutable","name":"fee","nameLocation":"27503:3:165","nodeType":"VariableDeclaration","scope":80904,"src":"27495:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80842,"name":"uint256","nodeType":"ElementaryTypeName","src":"27495:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80851,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80844,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27521:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27528:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27521:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27541:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83125,"src":"27521:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":80847,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27572:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27579:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27572:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27592:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83128,"src":"27572:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27521:100:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27495:126:165"},{"clauses":[{"block":{"id":80865,"nodeType":"Block","src":"27713:2:165","statements":[]},"errorName":"","id":80866,"nodeType":"TryCatchClause","src":"27713:2:165"},{"block":{"id":80867,"nodeType":"Block","src":"27722:2:165","statements":[]},"errorName":"","id":80868,"nodeType":"TryCatchClause","src":"27716:8:165"}],"externalCall":{"arguments":[{"id":80854,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27655:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80857,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27675:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27667:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80855,"name":"address","nodeType":"ElementaryTypeName","src":"27667:7:165","typeDescriptions":{}}},"id":80858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27667:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80859,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80843,"src":"27682:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80860,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80649,"src":"27687:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80861,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80657,"src":"27698:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80862,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80659,"src":"27703:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80863,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80661,"src":"27708:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80852,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80835,"src":"27635:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27648:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"27635:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:77:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80869,"nodeType":"TryStatement","src":"27631:93:165"},{"assignments":[80871],"declarations":[{"constant":false,"id":80871,"mutability":"mutable","name":"success","nameLocation":"27738:7:165","nodeType":"VariableDeclaration","scope":80904,"src":"27733:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80870,"name":"bool","nodeType":"ElementaryTypeName","src":"27733:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80881,"initialValue":{"arguments":[{"id":80874,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80642,"src":"27774:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80877,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"27794:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27786:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80875,"name":"address","nodeType":"ElementaryTypeName","src":"27786:7:165","typeDescriptions":{}}},"id":80878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27786:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80879,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80843,"src":"27801:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80872,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80835,"src":"27748:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27761:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"27748:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27748:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"27733:72:165"},{"expression":{"arguments":[{"id":80883,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80871,"src":"27823:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80884,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"27832:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27832:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27815:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27815:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80887,"nodeType":"ExpressionStatement","src":"27815:38:165"},{"expression":{"id":80898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80888,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80678,"src":"27864:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27871:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"27864:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27884:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"27864:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80894,"indexExpression":{"id":80891,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27890:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"27864:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80895,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"27901:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":80896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27906:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"27901:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":80897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27916:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"27901:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"27864:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":80899,"nodeType":"ExpressionStatement","src":"27864:71:165"},{"eventCall":{"arguments":[{"id":80901,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80644,"src":"27975:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80900,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74517,"src":"27951:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27951:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80903,"nodeType":"EmitStatement","src":"27946:37:165"}]},"baseFunctions":[74904],"documentation":{"id":80640,"nodeType":"StructuredDocumentation","src":"24071:1496:165","text":" @dev Requests code validation for the given code ID on behalf of someone else.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()`\n in the WVARA ERC20 token.\n @param _requester The address of the requester on behalf of whom the code validation is requested.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _blobHashes The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`.\n This is needed to verify that the transaction has expected blobs attached.\n @param _deadline Deadline for the transaction to be executed.\n @param _v1 ECDSA signature parameter (for requestCodeValidation).\n @param _r1 ECDSA signature parameter (for requestCodeValidation).\n @param _s1 ECDSA signature parameter (for requestCodeValidation).\n @param _v2 ECDSA signature parameter (for permit).\n @param _r2 ECDSA signature parameter (for permit).\n @param _s2 ECDSA signature parameter (for permit)."},"functionSelector":"f0fd702a","implemented":true,"kind":"function","modifiers":[{"id":80664,"kind":"modifierInvocation","modifierName":{"id":80663,"name":"whenNotPaused","nameLocations":["25868:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"25868:13:165"},"nodeType":"ModifierInvocation","src":"25868:13:165"}],"name":"requestCodeValidationOnBehalf","nameLocation":"25581:29:165","parameters":{"id":80662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80642,"mutability":"mutable","name":"_requester","nameLocation":"25628:10:165","nodeType":"VariableDeclaration","scope":80905,"src":"25620:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80641,"name":"address","nodeType":"ElementaryTypeName","src":"25620:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80644,"mutability":"mutable","name":"_codeId","nameLocation":"25656:7:165","nodeType":"VariableDeclaration","scope":80905,"src":"25648:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25648:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80647,"mutability":"mutable","name":"_blobHashes","nameLocation":"25692:11:165","nodeType":"VariableDeclaration","scope":80905,"src":"25673:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25673:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80646,"nodeType":"ArrayTypeName","src":"25673:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":80649,"mutability":"mutable","name":"_deadline","nameLocation":"25721:9:165","nodeType":"VariableDeclaration","scope":80905,"src":"25713:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80648,"name":"uint256","nodeType":"ElementaryTypeName","src":"25713:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80651,"mutability":"mutable","name":"_v1","nameLocation":"25746:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25740:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80650,"name":"uint8","nodeType":"ElementaryTypeName","src":"25740:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80653,"mutability":"mutable","name":"_r1","nameLocation":"25767:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25759:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25759:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80655,"mutability":"mutable","name":"_s1","nameLocation":"25788:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25780:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25780:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80657,"mutability":"mutable","name":"_v2","nameLocation":"25807:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25801:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80656,"name":"uint8","nodeType":"ElementaryTypeName","src":"25801:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80659,"mutability":"mutable","name":"_r2","nameLocation":"25828:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25820:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25820:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80661,"mutability":"mutable","name":"_s2","nameLocation":"25849:3:165","nodeType":"VariableDeclaration","scope":80905,"src":"25841:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25841:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25610:248:165"},"returnParameters":{"id":80665,"nodeType":"ParameterList","parameters":[],"src":"25882:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80950,"nodeType":"FunctionDefinition","src":"29070:396:165","nodes":[],"body":{"id":80949,"nodeType":"Block","src":"29224:242:165","nodes":[],"statements":[{"assignments":[80920,null],"declarations":[{"constant":false,"id":80920,"mutability":"mutable","name":"mirror","nameLocation":"29243:6:165","nodeType":"VariableDeclaration","scope":80949,"src":"29235:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80919,"name":"address","nodeType":"ElementaryTypeName","src":"29235:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":80926,"initialValue":{"arguments":[{"id":80922,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80908,"src":"29269:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80923,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80910,"src":"29278:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":80924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29285:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80921,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"29254:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":80925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29254:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"29234:56:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80931,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80912,"src":"29341:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29373:1:165","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":80933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80932,"name":"address","nodeType":"ElementaryTypeName","src":"29365:7:165","typeDescriptions":{}}},"id":80935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29365:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"29341:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":80939,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80912,"src":"29391:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"29341:70:165","trueExpression":{"expression":{"id":80937,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29378:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29382:6:165","memberName":"sender","nodeType":"MemberAccess","src":"29378:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80941,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79936,"src":"29413:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":80942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29413:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":80943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29427:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":80944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29433:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":80928,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80920,"src":"29309:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80927,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"29301:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":80929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29301:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":80930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29330:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"29301:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":80945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29301:134:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80946,"nodeType":"ExpressionStatement","src":"29301:134:165"},{"expression":{"id":80947,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80920,"src":"29453:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80918,"id":80948,"nodeType":"Return","src":"29446:13:165"}]},"baseFunctions":[74916],"documentation":{"id":80906,"nodeType":"StructuredDocumentation","src":"27996:1069:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, and initializer.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":80915,"kind":"modifierInvocation","modifierName":{"id":80914,"name":"whenNotPaused","nameLocations":["29180:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"29180:13:165"},"nodeType":"ModifierInvocation","src":"29180:13:165"}],"name":"createProgram","nameLocation":"29079:13:165","parameters":{"id":80913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80908,"mutability":"mutable","name":"_codeId","nameLocation":"29101:7:165","nodeType":"VariableDeclaration","scope":80950,"src":"29093:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29093:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80910,"mutability":"mutable","name":"_salt","nameLocation":"29118:5:165","nodeType":"VariableDeclaration","scope":80950,"src":"29110:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29110:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80912,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"29133:20:165","nodeType":"VariableDeclaration","scope":80950,"src":"29125:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80911,"name":"address","nodeType":"ElementaryTypeName","src":"29125:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29092:62:165"},"returnParameters":{"id":80918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80950,"src":"29211:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80916,"name":"address","nodeType":"ElementaryTypeName","src":"29211:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29210:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81055,"nodeType":"FunctionDefinition","src":"30939:1031:165","nodes":[],"body":{"id":81054,"nodeType":"Block","src":"31244:726:165","nodes":[],"statements":[{"assignments":[80975,80978],"declarations":[{"constant":false,"id":80975,"mutability":"mutable","name":"mirror","nameLocation":"31263:6:165","nodeType":"VariableDeclaration","scope":81054,"src":"31255:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80974,"name":"address","nodeType":"ElementaryTypeName","src":"31255:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80978,"mutability":"mutable","name":"router","nameLocation":"31287:6:165","nodeType":"VariableDeclaration","scope":81054,"src":"31271:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80977,"nodeType":"UserDefinedTypeName","pathNode":{"id":80976,"name":"Storage","nameLocations":["31271:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"31271:7:165"},"referencedDeclaration":74490,"src":"31271:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80984,"initialValue":{"arguments":[{"id":80980,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80953,"src":"31312:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80981,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80955,"src":"31321:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":80982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31328:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80979,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"31297:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":80983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31297:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"31254:79:165"},{"assignments":[80987],"declarations":[{"constant":false,"id":80987,"mutability":"mutable","name":"_wrappedVara","nameLocation":"31357:12:165","nodeType":"VariableDeclaration","scope":81054,"src":"31344:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":80986,"nodeType":"UserDefinedTypeName","pathNode":{"id":80985,"name":"IWrappedVara","nameLocations":["31344:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"31344:12:165"},"referencedDeclaration":75006,"src":"31344:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80993,"initialValue":{"arguments":[{"expression":{"expression":{"id":80989,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80978,"src":"31385:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31392:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"31385:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31406:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"31385:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80988,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"31372:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":80992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31372:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"31344:74:165"},{"clauses":[{"block":{"id":81008,"nodeType":"Block","src":"31530:2:165","statements":[]},"errorName":"","id":81009,"nodeType":"TryCatchClause","src":"31530:2:165"},{"block":{"id":81010,"nodeType":"Block","src":"31539:2:165","statements":[]},"errorName":"","id":81011,"nodeType":"TryCatchClause","src":"31533:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80996,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31453:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31457:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31453:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81000,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31473:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":80999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31465:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80998,"name":"address","nodeType":"ElementaryTypeName","src":"31465:7:165","typeDescriptions":{}}},"id":81001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31465:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81002,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31480:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81003,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80961,"src":"31507:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81004,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80963,"src":"31518:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81005,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80965,"src":"31522:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81006,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80967,"src":"31526:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80994,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80987,"src":"31433:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":80995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31446:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"31433:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31433:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81012,"nodeType":"TryStatement","src":"31429:112:165"},{"assignments":[81014],"declarations":[{"constant":false,"id":81014,"mutability":"mutable","name":"success","nameLocation":"31555:7:165","nodeType":"VariableDeclaration","scope":81054,"src":"31550:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81013,"name":"bool","nodeType":"ElementaryTypeName","src":"31550:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81025,"initialValue":{"arguments":[{"expression":{"id":81017,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31591:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31595:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31591:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81021,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"31611:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31603:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81019,"name":"address","nodeType":"ElementaryTypeName","src":"31603:7:165","typeDescriptions":{}}},"id":81022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31603:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81023,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31618:25:165","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":81015,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80987,"src":"31565:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31578:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"31565:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31565:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"31550:94:165"},{"expression":{"arguments":[{"id":81027,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81014,"src":"31662:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81028,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"31671:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31671:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81026,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"31654:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31654:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81031,"nodeType":"ExpressionStatement","src":"31654:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81036,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"31760:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31792:1:165","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":81038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31784:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81037,"name":"address","nodeType":"ElementaryTypeName","src":"31784:7:165","typeDescriptions":{}}},"id":81040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31784:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"31760:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81044,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80957,"src":"31810:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"31760:70:165","trueExpression":{"expression":{"id":81042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"31797:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31801:6:165","memberName":"sender","nodeType":"MemberAccess","src":"31797:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81046,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79936,"src":"31848:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31848:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"31878:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":81049,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80959,"src":"31900:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81033,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80975,"src":"31711:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81032,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"31703:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31703:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31732:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"31703:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31703:236:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81051,"nodeType":"ExpressionStatement","src":"31703:236:165"},{"expression":{"id":81052,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80975,"src":"31957:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80973,"id":81053,"nodeType":"Return","src":"31950:13:165"}]},"baseFunctions":[74938],"documentation":{"id":80951,"nodeType":"StructuredDocumentation","src":"29472:1462:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0d91bf2a","implemented":true,"kind":"function","modifiers":[{"id":80970,"kind":"modifierInvocation","modifierName":{"id":80969,"name":"whenNotPaused","nameLocations":["31212:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"31212:13:165"},"nodeType":"ModifierInvocation","src":"31212:13:165"}],"name":"createProgramWithExecutableBalance","nameLocation":"30948:34:165","parameters":{"id":80968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80953,"mutability":"mutable","name":"_codeId","nameLocation":"31000:7:165","nodeType":"VariableDeclaration","scope":81055,"src":"30992:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30992:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80955,"mutability":"mutable","name":"_salt","nameLocation":"31025:5:165","nodeType":"VariableDeclaration","scope":81055,"src":"31017:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31017:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80957,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"31048:20:165","nodeType":"VariableDeclaration","scope":81055,"src":"31040:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80956,"name":"address","nodeType":"ElementaryTypeName","src":"31040:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80959,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"31086:25:165","nodeType":"VariableDeclaration","scope":81055,"src":"31078:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80958,"name":"uint128","nodeType":"ElementaryTypeName","src":"31078:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80961,"mutability":"mutable","name":"_deadline","nameLocation":"31129:9:165","nodeType":"VariableDeclaration","scope":81055,"src":"31121:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80960,"name":"uint256","nodeType":"ElementaryTypeName","src":"31121:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80963,"mutability":"mutable","name":"_v","nameLocation":"31154:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31148:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80962,"name":"uint8","nodeType":"ElementaryTypeName","src":"31148:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80965,"mutability":"mutable","name":"_r","nameLocation":"31174:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31166:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31166:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80967,"mutability":"mutable","name":"_s","nameLocation":"31194:2:165","nodeType":"VariableDeclaration","scope":81055,"src":"31186:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31186:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30982:220:165"},"returnParameters":{"id":80973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80972,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81055,"src":"31235:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80971,"name":"address","nodeType":"ElementaryTypeName","src":"31235:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31234:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81101,"nodeType":"FunctionDefinition","src":"33132:448:165","nodes":[],"body":{"id":81100,"nodeType":"Block","src":"33335:245:165","nodes":[],"statements":[{"assignments":[81072,null],"declarations":[{"constant":false,"id":81072,"mutability":"mutable","name":"mirror","nameLocation":"33354:6:165","nodeType":"VariableDeclaration","scope":81100,"src":"33346:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81071,"name":"address","nodeType":"ElementaryTypeName","src":"33346:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81078,"initialValue":{"arguments":[{"id":81074,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81058,"src":"33380:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81075,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81060,"src":"33389:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33396:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81073,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"33365:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33365:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"33345:57:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81083,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81062,"src":"33453:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33485:1:165","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":81085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"33477:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81084,"name":"address","nodeType":"ElementaryTypeName","src":"33477:7:165","typeDescriptions":{}}},"id":81087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33477:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"33453:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81091,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81062,"src":"33503:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"33453:70:165","trueExpression":{"expression":{"id":81089,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"33490:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33494:6:165","memberName":"sender","nodeType":"MemberAccess","src":"33490:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81093,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81064,"src":"33525:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33540:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":81095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33547:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":81080,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81072,"src":"33421:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81079,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"33413:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33413:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"33442:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"33413:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33413:136:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81097,"nodeType":"ExpressionStatement","src":"33413:136:165"},{"expression":{"id":81098,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81072,"src":"33567:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81070,"id":81099,"nodeType":"Return","src":"33560:13:165"}]},"baseFunctions":[74952],"documentation":{"id":81056,"nodeType":"StructuredDocumentation","src":"31976:1151:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":81067,"kind":"modifierInvocation","modifierName":{"id":81066,"name":"whenNotPaused","nameLocations":["33303:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"33303:13:165"},"nodeType":"ModifierInvocation","src":"33303:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"33141:29:165","parameters":{"id":81065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81058,"mutability":"mutable","name":"_codeId","nameLocation":"33188:7:165","nodeType":"VariableDeclaration","scope":81101,"src":"33180:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33180:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81060,"mutability":"mutable","name":"_salt","nameLocation":"33213:5:165","nodeType":"VariableDeclaration","scope":81101,"src":"33205:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33205:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81062,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"33236:20:165","nodeType":"VariableDeclaration","scope":81101,"src":"33228:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81061,"name":"address","nodeType":"ElementaryTypeName","src":"33228:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81064,"mutability":"mutable","name":"_abiInterface","nameLocation":"33274:13:165","nodeType":"VariableDeclaration","scope":81101,"src":"33266:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81063,"name":"address","nodeType":"ElementaryTypeName","src":"33266:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33170:123:165"},"returnParameters":{"id":81070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81101,"src":"33326:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81068,"name":"address","nodeType":"ElementaryTypeName","src":"33326:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33325:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81207,"nodeType":"FunctionDefinition","src":"35136:1080:165","nodes":[],"body":{"id":81206,"nodeType":"Block","src":"35487:729:165","nodes":[],"statements":[{"assignments":[81128,81131],"declarations":[{"constant":false,"id":81128,"mutability":"mutable","name":"mirror","nameLocation":"35506:6:165","nodeType":"VariableDeclaration","scope":81206,"src":"35498:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81127,"name":"address","nodeType":"ElementaryTypeName","src":"35498:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81131,"mutability":"mutable","name":"router","nameLocation":"35530:6:165","nodeType":"VariableDeclaration","scope":81206,"src":"35514:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81130,"nodeType":"UserDefinedTypeName","pathNode":{"id":81129,"name":"Storage","nameLocations":["35514:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"35514:7:165"},"referencedDeclaration":74490,"src":"35514:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81137,"initialValue":{"arguments":[{"id":81133,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81104,"src":"35555:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81134,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81106,"src":"35564:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"35571:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81132,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81477,"src":"35540:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35540:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"35497:80:165"},{"assignments":[81140],"declarations":[{"constant":false,"id":81140,"mutability":"mutable","name":"_wrappedVara","nameLocation":"35601:12:165","nodeType":"VariableDeclaration","scope":81206,"src":"35588:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"},"typeName":{"id":81139,"nodeType":"UserDefinedTypeName","pathNode":{"id":81138,"name":"IWrappedVara","nameLocations":["35588:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75006,"src":"35588:12:165"},"referencedDeclaration":75006,"src":"35588:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81146,"initialValue":{"arguments":[{"expression":{"expression":{"id":81142,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81131,"src":"35629:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35636:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"35629:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"35650:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"35629:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81141,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"35616:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":81145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35616:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"35588:74:165"},{"clauses":[{"block":{"id":81161,"nodeType":"Block","src":"35774:2:165","statements":[]},"errorName":"","id":81162,"nodeType":"TryCatchClause","src":"35774:2:165"},{"block":{"id":81163,"nodeType":"Block","src":"35783:2:165","statements":[]},"errorName":"","id":81164,"nodeType":"TryCatchClause","src":"35777:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81149,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35697:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35701:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35697:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81153,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35717:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35709:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81151,"name":"address","nodeType":"ElementaryTypeName","src":"35709:7:165","typeDescriptions":{}}},"id":81154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35709:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81155,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"35724:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81156,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81114,"src":"35751:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81157,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81116,"src":"35762:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81158,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81118,"src":"35766:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81159,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81120,"src":"35770:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81147,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81140,"src":"35677:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35690:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"35677:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35677:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81165,"nodeType":"TryStatement","src":"35673:112:165"},{"assignments":[81167],"declarations":[{"constant":false,"id":81167,"mutability":"mutable","name":"success","nameLocation":"35799:7:165","nodeType":"VariableDeclaration","scope":81206,"src":"35794:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81166,"name":"bool","nodeType":"ElementaryTypeName","src":"35794:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81178,"initialValue":{"arguments":[{"expression":{"id":81170,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"35835:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35839:6:165","memberName":"sender","nodeType":"MemberAccess","src":"35835:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81174,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"35855:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35847:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81172,"name":"address","nodeType":"ElementaryTypeName","src":"35847:7:165","typeDescriptions":{}}},"id":81175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35847:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81176,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"35862:25:165","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":81168,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81140,"src":"35809:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35822:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"35809:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35809:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"35794:94:165"},{"expression":{"arguments":[{"id":81180,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81167,"src":"35906:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81181,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74603,"src":"35915:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35915:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81179,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"35898:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35898:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81184,"nodeType":"ExpressionStatement","src":"35898:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81189,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81108,"src":"36004:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36036:1:165","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":81191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36028:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81190,"name":"address","nodeType":"ElementaryTypeName","src":"36028:7:165","typeDescriptions":{}}},"id":81193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36028:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"36004:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81197,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81108,"src":"36054:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"36004:70:165","trueExpression":{"expression":{"id":81195,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36041:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36045:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36041:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81199,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81110,"src":"36092:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36123:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":81201,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"36146:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81186,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81128,"src":"35955:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81185,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"35947:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35947:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"35976:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"35947:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35947:238:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81203,"nodeType":"ExpressionStatement","src":"35947:238:165"},{"expression":{"id":81204,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81128,"src":"36203:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81126,"id":81205,"nodeType":"Return","src":"36196:13:165"}]},"baseFunctions":[74976],"documentation":{"id":81102,"nodeType":"StructuredDocumentation","src":"33586:1545:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"ee32004f","implemented":true,"kind":"function","modifiers":[{"id":81123,"kind":"modifierInvocation","modifierName":{"id":81122,"name":"whenNotPaused","nameLocations":["35455:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"35455:13:165"},"nodeType":"ModifierInvocation","src":"35455:13:165"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"35145:49:165","parameters":{"id":81121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81104,"mutability":"mutable","name":"_codeId","nameLocation":"35212:7:165","nodeType":"VariableDeclaration","scope":81207,"src":"35204:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35204:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81106,"mutability":"mutable","name":"_salt","nameLocation":"35237:5:165","nodeType":"VariableDeclaration","scope":81207,"src":"35229:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35229:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81108,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"35260:20:165","nodeType":"VariableDeclaration","scope":81207,"src":"35252:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81107,"name":"address","nodeType":"ElementaryTypeName","src":"35252:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81110,"mutability":"mutable","name":"_abiInterface","nameLocation":"35298:13:165","nodeType":"VariableDeclaration","scope":81207,"src":"35290:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81109,"name":"address","nodeType":"ElementaryTypeName","src":"35290:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81112,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"35329:25:165","nodeType":"VariableDeclaration","scope":81207,"src":"35321:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81111,"name":"uint128","nodeType":"ElementaryTypeName","src":"35321:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81114,"mutability":"mutable","name":"_deadline","nameLocation":"35372:9:165","nodeType":"VariableDeclaration","scope":81207,"src":"35364:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81113,"name":"uint256","nodeType":"ElementaryTypeName","src":"35364:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81116,"mutability":"mutable","name":"_v","nameLocation":"35397:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35391:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81115,"name":"uint8","nodeType":"ElementaryTypeName","src":"35391:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81118,"mutability":"mutable","name":"_r","nameLocation":"35417:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35409:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35409:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81120,"mutability":"mutable","name":"_s","nameLocation":"35437:2:165","nodeType":"VariableDeclaration","scope":81207,"src":"35429:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35429:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35194:251:165"},"returnParameters":{"id":81126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81207,"src":"35478:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81124,"name":"address","nodeType":"ElementaryTypeName","src":"35478:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35477:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81374,"nodeType":"FunctionDefinition","src":"36677:2151:165","nodes":[],"body":{"id":81373,"nodeType":"Block","src":"36853:1975:165","nodes":[],"statements":[{"assignments":[81224],"declarations":[{"constant":false,"id":81224,"mutability":"mutable","name":"router","nameLocation":"36879:6:165","nodeType":"VariableDeclaration","scope":81373,"src":"36863:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81223,"nodeType":"UserDefinedTypeName","pathNode":{"id":81222,"name":"Storage","nameLocations":["36863:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"36863:7:165"},"referencedDeclaration":74490,"src":"36863:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81227,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81225,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"36888:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36888:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"36863:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81229,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"36916:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36923:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"36916:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36936:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"36916:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36952:1:165","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":81233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36944:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36944:7:165","typeDescriptions":{}}},"id":81235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36944:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"36916:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81237,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"36956:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36956:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81228,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"36908:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36908:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81240,"nodeType":"ExpressionStatement","src":"36908:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81241,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37154:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37161:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":74461,"src":"37154:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37173:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37154:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81268,"nodeType":"IfStatement","src":"37150:295:165","trueBody":{"id":81267,"nodeType":"Block","src":"37176:269:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":81248,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37222:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37229:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"37222:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81250,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37240:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37247:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"37240:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":81246,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"37198:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37203:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":83515,"src":"37198:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":81252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37198:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81253,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74605,"src":"37256:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37256:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37190:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37190:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81256,"nodeType":"ExpressionStatement","src":"37190:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81258,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"37367:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37373:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"37367:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":81260,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37385:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37392:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"37385:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37367:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81263,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74607,"src":"37408:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37408:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37359:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37359:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81266,"nodeType":"ExpressionStatement","src":"37359:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81270,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37558:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37565:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"37558:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37586:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"37558:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":81273,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37594:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37601:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":82996,"src":"37594:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37558:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81276,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"37629:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37629:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81269,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37537:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37537:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81279,"nodeType":"ExpressionStatement","src":"37537:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81281,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37693:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37700:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"37693:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37721:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"37693:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":81284,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37734:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"37741:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"37734:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"37693:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81287,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74611,"src":"37757:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37757:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81280,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37685:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37685:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81290,"nodeType":"ExpressionStatement","src":"37685:97:165"},{"assignments":[81292],"declarations":[{"constant":false,"id":81292,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"37801:20:165","nodeType":"VariableDeclaration","scope":81373,"src":"37793:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37793:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81297,"initialValue":{"arguments":[{"id":81294,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37837:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81295,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37845:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81293,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81556,"src":"37824:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37824:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37793:59:165"},{"assignments":[81299],"declarations":[{"constant":false,"id":81299,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"37870:20:165","nodeType":"VariableDeclaration","scope":81373,"src":"37862:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37862:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81304,"initialValue":{"arguments":[{"id":81301,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37906:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81302,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37914:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81300,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81698,"src":"37893:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37893:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37862:59:165"},{"assignments":[81306],"declarations":[{"constant":false,"id":81306,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"37939:22:165","nodeType":"VariableDeclaration","scope":81373,"src":"37931:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37931:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81311,"initialValue":{"arguments":[{"id":81308,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"37979:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81309,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"37987:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81307,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81855,"src":"37964:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37964:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"37931:63:165"},{"assignments":[81313],"declarations":[{"constant":false,"id":81313,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"38012:25:165","nodeType":"VariableDeclaration","scope":81373,"src":"38004:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38004:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81318,"initialValue":{"arguments":[{"id":81315,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38058:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81316,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38066:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81314,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82003,"src":"38040:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_struct$_BatchCommitment_$83020_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38040:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38004:69:165"},{"assignments":[81320],"declarations":[{"constant":false,"id":81320,"mutability":"mutable","name":"_batchHash","nameLocation":"38092:10:165","nodeType":"VariableDeclaration","scope":81373,"src":"38084:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38084:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81336,"initialValue":{"arguments":[{"expression":{"id":81323,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38143:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38150:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":82990,"src":"38143:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81325,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38173:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38180:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38173:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":81327,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38208:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38215:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":82996,"src":"38208:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81329,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38255:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38262:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"38255:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81331,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"38282:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81332,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81299,"src":"38316:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81333,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81306,"src":"38350:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81334,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81313,"src":"38386:25:165","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81321,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"38105:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38110:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83359,"src":"38105:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38105:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38084:337:165"},{"expression":{"id":81343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81337,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38432:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38439:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"38432:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38460:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83063,"src":"38432:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81342,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38467:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38432:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81344,"nodeType":"ExpressionStatement","src":"38432:45:165"},{"expression":{"id":81352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81345,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38487:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38494:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74469,"src":"38487:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83066_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"38515:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83065,"src":"38487:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81350,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38527:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38534:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38527:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38487:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":81353,"nodeType":"ExpressionStatement","src":"38487:61:165"},{"eventCall":{"arguments":[{"id":81355,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38579:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81354,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74495,"src":"38564:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38564:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81357,"nodeType":"EmitStatement","src":"38559:31:165"},{"expression":{"arguments":[{"arguments":[{"id":81361,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81224,"src":"38665:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81362,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79489,"src":"38673:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81363,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81320,"src":"38692:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81364,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81214,"src":"38704:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},{"id":81365,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81217,"src":"38720:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":81366,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81211,"src":"38733:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38740:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"38733:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81359,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"38622:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38627:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":83801,"src":"38622:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$83233_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":81368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38622:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81369,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74639,"src":"38782:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38782:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38601:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38601:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81372,"nodeType":"ExpressionStatement","src":"38601:220:165"}]},"baseFunctions":[74989],"documentation":{"id":81208,"nodeType":"StructuredDocumentation","src":"36222:450:165","text":" @dev Commits new batch of changes to `Router` state.\n `CodeGotValidated` event is emitted for each code in commitment.\n `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\n @param _batch The batch commitment data.\n @param _signatureType The type of signature to validate.\n @param _signatures The signatures for the batch commitment."},"functionSelector":"1622441d","implemented":true,"kind":"function","modifiers":[{"id":81220,"kind":"modifierInvocation","modifierName":{"id":81219,"name":"nonReentrant","nameLocations":["36840:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43886,"src":"36840:12:165"},"nodeType":"ModifierInvocation","src":"36840:12:165"}],"name":"commitBatch","nameLocation":"36686:11:165","parameters":{"id":81218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81211,"mutability":"mutable","name":"_batch","nameLocation":"36737:6:165","nodeType":"VariableDeclaration","scope":81374,"src":"36707:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81210,"nodeType":"UserDefinedTypeName","pathNode":{"id":81209,"name":"Gear.BatchCommitment","nameLocations":["36707:4:165","36712:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"36707:20:165"},"referencedDeclaration":83020,"src":"36707:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":81214,"mutability":"mutable","name":"_signatureType","nameLocation":"36772:14:165","nodeType":"VariableDeclaration","scope":81374,"src":"36753:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"},"typeName":{"id":81213,"nodeType":"UserDefinedTypeName","pathNode":{"id":81212,"name":"Gear.SignatureType","nameLocations":["36753:4:165","36758:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":83233,"src":"36753:18:165"},"referencedDeclaration":83233,"src":"36753:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83233","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":81217,"mutability":"mutable","name":"_signatures","nameLocation":"36813:11:165","nodeType":"VariableDeclaration","scope":81374,"src":"36796:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81215,"name":"bytes","nodeType":"ElementaryTypeName","src":"36796:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81216,"nodeType":"ArrayTypeName","src":"36796:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"36697:133:165"},"returnParameters":{"id":81221,"nodeType":"ParameterList","parameters":[],"src":"36853:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81477,"nodeType":"FunctionDefinition","src":"38872:934:165","nodes":[],"body":{"id":81476,"nodeType":"Block","src":"38986:820:165","nodes":[],"statements":[{"assignments":[81390],"declarations":[{"constant":false,"id":81390,"mutability":"mutable","name":"router","nameLocation":"39012:6:165","nodeType":"VariableDeclaration","scope":81476,"src":"38996:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81389,"nodeType":"UserDefinedTypeName","pathNode":{"id":81388,"name":"Storage","nameLocations":["38996:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"38996:7:165"},"referencedDeclaration":74490,"src":"38996:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81393,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81391,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"39021:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39021:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"38996:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81395,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39048:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39055:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"39048:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39068:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"39048:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39084:1:165","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":81399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39076:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39076:7:165","typeDescriptions":{}}},"id":81401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39076:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39048:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81403,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"39088:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39088:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81394,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39040:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39040:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81406,"nodeType":"ExpressionStatement","src":"39040:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":81416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81408,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39141:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39148:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39141:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39161:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"39141:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81412,"indexExpression":{"id":81411,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39167:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"39141:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81413,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"39179:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39184:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"39179:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39194:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"39179:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"39141:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81417,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"39205:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39205:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39133:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39133:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81420,"nodeType":"ExpressionStatement","src":"39133:91:165"},{"assignments":[81422],"declarations":[{"constant":false,"id":81422,"mutability":"mutable","name":"salt","nameLocation":"39393:4:165","nodeType":"VariableDeclaration","scope":81476,"src":"39385:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39385:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81428,"initialValue":{"arguments":[{"id":81425,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39435:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81426,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"39444:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81423,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"39400:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39407:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"39400:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39400:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"39385:65:165"},{"assignments":[81430],"declarations":[{"constant":false,"id":81430,"mutability":"mutable","name":"actorId","nameLocation":"39468:7:165","nodeType":"VariableDeclaration","scope":81476,"src":"39460:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81429,"name":"address","nodeType":"ElementaryTypeName","src":"39460:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81449,"initialValue":{"condition":{"id":81431,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81380,"src":"39478:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":81444,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39601:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39593:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81442,"name":"address","nodeType":"ElementaryTypeName","src":"39593:7:165","typeDescriptions":{}}},"id":81445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39593:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81446,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81422,"src":"39608:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81440,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82749,"src":"39567:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$82749_$","typeString":"type(library Clones)"}},"id":81441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39574:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82518,"src":"39567:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39567:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"39478:135:165","trueExpression":{"arguments":[{"arguments":[{"id":81436,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"39540:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82353","typeString":"contract Router"}],"id":81435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39532:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81434,"name":"address","nodeType":"ElementaryTypeName","src":"39532:7:165","typeDescriptions":{}}},"id":81437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39532:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81438,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81422,"src":"39547:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81432,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82833,"src":"39501:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$82833_$","typeString":"type(library ClonesSmall)"}},"id":81433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39513:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82771,"src":"39501:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39501:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"39460:153:165"},{"expression":{"id":81458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81450,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39624:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39631:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39624:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39644:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"39624:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":81456,"indexExpression":{"id":81453,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39653:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"39624:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81457,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39664:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39624:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81459,"nodeType":"ExpressionStatement","src":"39624:47:165"},{"expression":{"id":81465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"39681:35:165","subExpression":{"expression":{"expression":{"id":81460,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39681:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39688:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"39681:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39701:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83116,"src":"39681:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81466,"nodeType":"ExpressionStatement","src":"39681:35:165"},{"eventCall":{"arguments":[{"id":81468,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39747:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81469,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81376,"src":"39756:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81467,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"39732:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":81470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39732:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81471,"nodeType":"EmitStatement","src":"39727:37:165"},{"expression":{"components":[{"id":81472,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81430,"src":"39783:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81473,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81390,"src":"39792:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":81474,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39782:17:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":81387,"id":81475,"nodeType":"Return","src":"39775:24:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"38881:14:165","parameters":{"id":81381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81376,"mutability":"mutable","name":"_codeId","nameLocation":"38904:7:165","nodeType":"VariableDeclaration","scope":81477,"src":"38896:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38896:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81378,"mutability":"mutable","name":"_salt","nameLocation":"38921:5:165","nodeType":"VariableDeclaration","scope":81477,"src":"38913:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38913:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81380,"mutability":"mutable","name":"_isSmall","nameLocation":"38933:8:165","nodeType":"VariableDeclaration","scope":81477,"src":"38928:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81379,"name":"bool","nodeType":"ElementaryTypeName","src":"38928:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38895:47:165"},"returnParameters":{"id":81387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81477,"src":"38960:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81382,"name":"address","nodeType":"ElementaryTypeName","src":"38960:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81477,"src":"38969:15:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81385,"nodeType":"UserDefinedTypeName","pathNode":{"id":81384,"name":"Storage","nameLocations":["38969:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"38969:7:165"},"referencedDeclaration":74490,"src":"38969:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"38959:26:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81556,"nodeType":"FunctionDefinition","src":"39812:846:165","nodes":[],"body":{"id":81555,"nodeType":"Block","src":"39922:736:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81489,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"39940:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39947:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"39940:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39963:6:165","memberName":"length","nodeType":"MemberAccess","src":"39940:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39973:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"39940:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81494,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"39976:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39976:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81488,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39932:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39932:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81497,"nodeType":"ExpressionStatement","src":"39932:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81498,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"40017:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40024:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"40017:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40040:6:165","memberName":"length","nodeType":"MemberAccess","src":"40017:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40050:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"40017:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81508,"nodeType":"IfStatement","src":"40013:177:165","trueBody":{"id":81507,"nodeType":"Block","src":"40053:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40176:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81503,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"40166:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40166:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81487,"id":81506,"nodeType":"Return","src":"40159:20:165"}]}},{"assignments":[81513],"declarations":[{"constant":false,"id":81513,"mutability":"mutable","name":"_commitment","nameLocation":"40230:11:165","nodeType":"VariableDeclaration","scope":81555,"src":"40200:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":81512,"nodeType":"UserDefinedTypeName","pathNode":{"id":81511,"name":"Gear.ChainCommitment","nameLocations":["40200:4:165","40205:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":82972,"src":"40200:20:165"},"referencedDeclaration":82972,"src":"40200:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":81518,"initialValue":{"baseExpression":{"expression":{"id":81514,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81483,"src":"40244:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40251:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83004,"src":"40244:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$82972_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81517,"indexExpression":{"hexValue":"30","id":81516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40267:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40244:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"40200:69:165"},{"assignments":[81520],"declarations":[{"constant":false,"id":81520,"mutability":"mutable","name":"_transitionsHash","nameLocation":"40288:16:165","nodeType":"VariableDeclaration","scope":81555,"src":"40280:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40280:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81526,"initialValue":{"arguments":[{"id":81522,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81480,"src":"40326:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81523,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40334:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40346:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":82965,"src":"40334:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":81521,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82123,"src":"40307:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74490_storage_ptr_$_t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":81525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40307:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"40280:78:165"},{"eventCall":{"arguments":[{"expression":{"id":81528,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40386:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40398:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":82968,"src":"40386:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81527,"name":"MBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74500,"src":"40374:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40374:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81531,"nodeType":"EmitStatement","src":"40369:34:165"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81532,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40417:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40429:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40417:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40461:1:165","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":81535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40453:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40453:7:165","typeDescriptions":{}}},"id":81537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40453:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40417:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81545,"nodeType":"IfStatement","src":"40413:127:165","trueBody":{"id":81544,"nodeType":"Block","src":"40465:75:165","statements":[{"eventCall":{"arguments":[{"expression":{"id":81540,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40496:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40508:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40496:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81539,"name":"EBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74505,"src":"40484:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40484:45:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81543,"nodeType":"EmitStatement","src":"40479:50:165"}]}},{"expression":{"arguments":[{"id":81548,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81520,"src":"40582:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81549,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40600:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40612:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":82968,"src":"40600:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81551,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"40618:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$82972_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40630:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":82971,"src":"40618:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81546,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"40557:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40562:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83255,"src":"40557:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40557:94:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81487,"id":81554,"nodeType":"Return","src":"40550:101:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"39821:12:165","parameters":{"id":81484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81480,"mutability":"mutable","name":"router","nameLocation":"39850:6:165","nodeType":"VariableDeclaration","scope":81556,"src":"39834:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81479,"nodeType":"UserDefinedTypeName","pathNode":{"id":81478,"name":"Storage","nameLocations":["39834:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"39834:7:165"},"referencedDeclaration":74490,"src":"39834:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81483,"mutability":"mutable","name":"_batch","nameLocation":"39888:6:165","nodeType":"VariableDeclaration","scope":81556,"src":"39858:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81482,"nodeType":"UserDefinedTypeName","pathNode":{"id":81481,"name":"Gear.BatchCommitment","nameLocations":["39858:4:165","39863:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"39858:20:165"},"referencedDeclaration":83020,"src":"39858:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"39833:62:165"},"returnParameters":{"id":81487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81556,"src":"39913:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39913:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"39912:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81698,"nodeType":"FunctionDefinition","src":"40664:1402:165","nodes":[],"body":{"id":81697,"nodeType":"Block","src":"40774:1292:165","nodes":[],"statements":[{"assignments":[81568],"declarations":[{"constant":false,"id":81568,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"40792:18:165","nodeType":"VariableDeclaration","scope":81697,"src":"40784:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81567,"name":"uint256","nodeType":"ElementaryTypeName","src":"40784:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81572,"initialValue":{"expression":{"expression":{"id":81569,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"40813:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40820:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83009,"src":"40813:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40836:6:165","memberName":"length","nodeType":"MemberAccess","src":"40813:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40784:58:165"},{"assignments":[81574],"declarations":[{"constant":false,"id":81574,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"40860:23:165","nodeType":"VariableDeclaration","scope":81697,"src":"40852:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81573,"name":"uint256","nodeType":"ElementaryTypeName","src":"40852:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81578,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81575,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81568,"src":"40886:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40907:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"40886:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40852:57:165"},{"assignments":[81580],"declarations":[{"constant":false,"id":81580,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"40927:18:165","nodeType":"VariableDeclaration","scope":81697,"src":"40919:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81579,"name":"uint256","nodeType":"ElementaryTypeName","src":"40919:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81585,"initialValue":{"arguments":[{"id":81583,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81574,"src":"40964:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81581,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"40948:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40955:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"40948:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40948:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"40919:69:165"},{"assignments":[81587],"declarations":[{"constant":false,"id":81587,"mutability":"mutable","name":"offset","nameLocation":"41006:6:165","nodeType":"VariableDeclaration","scope":81697,"src":"40998:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81586,"name":"uint256","nodeType":"ElementaryTypeName","src":"40998:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81589,"initialValue":{"hexValue":"30","id":81588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41015:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"40998:18:165"},{"body":{"id":81688,"nodeType":"Block","src":"41076:884:165","statements":[{"assignments":[81604],"declarations":[{"constant":false,"id":81604,"mutability":"mutable","name":"_commitment","nameLocation":"41119:11:165","nodeType":"VariableDeclaration","scope":81688,"src":"41090:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":81603,"nodeType":"UserDefinedTypeName","pathNode":{"id":81602,"name":"Gear.CodeCommitment","nameLocations":["41090:4:165","41095:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":82959,"src":"41090:19:165"},"referencedDeclaration":82959,"src":"41090:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":81609,"initialValue":{"baseExpression":{"expression":{"id":81605,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"41133:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41140:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83009,"src":"41133:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$82959_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81608,"indexExpression":{"id":81607,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41156:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41133:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"41090:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"},"id":81620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81611,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41198:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41205:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41198:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41218:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41198:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81616,"indexExpression":{"expression":{"id":81614,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41224:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41236:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41224:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41198:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81617,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41243:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41248:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"41243:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41258:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"41243:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"41198:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81621,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74617,"src":"41295:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41295:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"41173:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41173:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81624,"nodeType":"ExpressionStatement","src":"41173:164:165"},{"condition":{"expression":{"id":81625,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41356:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41368:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41356:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81656,"nodeType":"Block","src":"41541:81:165","statements":[{"expression":{"id":81654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"41559:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":81648,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41566:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41573:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41566:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41586:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41566:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81653,"indexExpression":{"expression":{"id":81651,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41592:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41604:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41592:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41566:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81655,"nodeType":"ExpressionStatement","src":"41559:48:165"}]},"id":81657,"nodeType":"IfStatement","src":"41352:270:165","trueBody":{"id":81647,"nodeType":"Block","src":"41375:160:165","statements":[{"expression":{"id":81638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41393:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41400:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41393:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41413:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"41393:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83060_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81634,"indexExpression":{"expression":{"id":81630,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41419:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41431:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41419:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"41393:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":81635,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41437:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41442:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83060,"src":"41437:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83060_$","typeString":"type(enum Gear.CodeState)"}},"id":81637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41452:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"41437:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"src":"41393:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83060","typeString":"enum Gear.CodeState"}},"id":81639,"nodeType":"ExpressionStatement","src":"41393:68:165"},{"expression":{"id":81645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41479:41:165","subExpression":{"expression":{"expression":{"id":81640,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41479:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"41486:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"41479:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"41499:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83119,"src":"41479:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81646,"nodeType":"ExpressionStatement","src":"41479:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":81659,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41658:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41670:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41658:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81661,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41674:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41686:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41674:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81658,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74512,"src":"41641:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41641:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81664,"nodeType":"EmitStatement","src":"41636:56:165"},{"assignments":[81666],"declarations":[{"constant":false,"id":81666,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"41715:18:165","nodeType":"VariableDeclaration","scope":81688,"src":"41707:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41707:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81674,"initialValue":{"arguments":[{"expression":{"id":81669,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41760:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41772:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"41760:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81671,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81604,"src":"41776:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$82959_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41788:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":82958,"src":"41776:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":81667,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"41736:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41741:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83272,"src":"41736:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":81673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41736:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41707:87:165"},{"expression":{"arguments":[{"id":81678,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81580,"src":"41834:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81679,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81587,"src":"41854:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81680,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81666,"src":"41862:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81675,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"41808:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41815:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"41808:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41808:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81682,"nodeType":"ExpressionStatement","src":"41808:73:165"},{"id":81687,"nodeType":"UncheckedBlock","src":"41895:55:165","statements":[{"expression":{"id":81685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81683,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81587,"src":"41923:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41933:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"41923:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81686,"nodeType":"ExpressionStatement","src":"41923:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81594,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41047:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81595,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81568,"src":"41051:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41047:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81689,"initializationExpression":{"assignments":[81591],"declarations":[{"constant":false,"id":81591,"mutability":"mutable","name":"i","nameLocation":"41040:1:165","nodeType":"VariableDeclaration","scope":81689,"src":"41032:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81590,"name":"uint256","nodeType":"ElementaryTypeName","src":"41032:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81593,"initialValue":{"hexValue":"30","id":81592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41044:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"41032:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41071:3:165","subExpression":{"id":81597,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81591,"src":"41071:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81599,"nodeType":"ExpressionStatement","src":"41071:3:165"},"nodeType":"ForStatement","src":"41027:933:165"},{"expression":{"arguments":[{"id":81692,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81580,"src":"42012:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42032:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81694,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81574,"src":"42035:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81690,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"41977:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41984:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"41977:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41977:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81566,"id":81696,"nodeType":"Return","src":"41970:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"40673:12:165","parameters":{"id":81563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81559,"mutability":"mutable","name":"router","nameLocation":"40702:6:165","nodeType":"VariableDeclaration","scope":81698,"src":"40686:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81558,"nodeType":"UserDefinedTypeName","pathNode":{"id":81557,"name":"Storage","nameLocations":["40686:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"40686:7:165"},"referencedDeclaration":74490,"src":"40686:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81562,"mutability":"mutable","name":"_batch","nameLocation":"40740:6:165","nodeType":"VariableDeclaration","scope":81698,"src":"40710:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81561,"nodeType":"UserDefinedTypeName","pathNode":{"id":81560,"name":"Gear.BatchCommitment","nameLocations":["40710:4:165","40715:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"40710:20:165"},"referencedDeclaration":83020,"src":"40710:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"40685:62:165"},"returnParameters":{"id":81566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81698,"src":"40765:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40765:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40764:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81855,"nodeType":"FunctionDefinition","src":"42108:1705:165","nodes":[],"body":{"id":81854,"nodeType":"Block","src":"42220:1593:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81710,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42238:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42245:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42238:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42263:6:165","memberName":"length","nodeType":"MemberAccess","src":"42238:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42273:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"42238:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81715,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74619,"src":"42276:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42276:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81709,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42230:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42230:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81718,"nodeType":"ExpressionStatement","src":"42230:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81719,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42319:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42326:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42319:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42344:6:165","memberName":"length","nodeType":"MemberAccess","src":"42319:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42354:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"42319:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81729,"nodeType":"IfStatement","src":"42315:179:165","trueBody":{"id":81728,"nodeType":"Block","src":"42357:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42480:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81724,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"42470:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42470:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81708,"id":81727,"nodeType":"Return","src":"42463:20:165"}]}},{"assignments":[81734],"declarations":[{"constant":false,"id":81734,"mutability":"mutable","name":"_commitment","nameLocation":"42536:11:165","nodeType":"VariableDeclaration","scope":81854,"src":"42504:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":81733,"nodeType":"UserDefinedTypeName","pathNode":{"id":81732,"name":"Gear.RewardsCommitment","nameLocations":["42504:4:165","42509:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":83030,"src":"42504:22:165"},"referencedDeclaration":83030,"src":"42504:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":81739,"initialValue":{"baseExpression":{"expression":{"id":81735,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42550:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42557:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83014,"src":"42550:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83030_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81738,"indexExpression":{"hexValue":"30","id":81737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42575:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42550:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"42504:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81741,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42596:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42608:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42596:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81743,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42620:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42627:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"42620:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42596:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81746,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74621,"src":"42643:35:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42643:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42588:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42588:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81749,"nodeType":"ExpressionStatement","src":"42588:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81751,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42699:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42711:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42699:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":81753,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42724:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42731:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"42724:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42744:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"42724:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"42699:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81757,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74623,"src":"42755:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42755:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81750,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42691:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42691:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81760,"nodeType":"ExpressionStatement","src":"42691:99:165"},{"assignments":[81762],"declarations":[{"constant":false,"id":81762,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"42809:18:165","nodeType":"VariableDeclaration","scope":81854,"src":"42801:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81761,"name":"uint256","nodeType":"ElementaryTypeName","src":"42801:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81769,"initialValue":{"arguments":[{"id":81765,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42846:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81766,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"42854:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42866:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"42854:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81763,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"42830:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42835:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84009,"src":"42830:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42830:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42801:75:165"},{"assignments":[81771],"declarations":[{"constant":false,"id":81771,"mutability":"mutable","name":"batchEraIndex","nameLocation":"42894:13:165","nodeType":"VariableDeclaration","scope":81854,"src":"42886:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81770,"name":"uint256","nodeType":"ElementaryTypeName","src":"42886:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81778,"initialValue":{"arguments":[{"id":81774,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"42926:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81775,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81704,"src":"42934:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42941:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":82993,"src":"42934:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81772,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"42910:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42915:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84009,"src":"42910:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42910:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"42886:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81780,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81762,"src":"42975:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81781,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81771,"src":"42996:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"42975:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81783,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74625,"src":"43011:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43011:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42967:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42967:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81786,"nodeType":"ExpressionStatement","src":"42967:78:165"},{"assignments":[81788],"declarations":[{"constant":false,"id":81788,"mutability":"mutable","name":"_middleware","nameLocation":"43064:11:165","nodeType":"VariableDeclaration","scope":81854,"src":"43056:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81787,"name":"address","nodeType":"ElementaryTypeName","src":"43056:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81792,"initialValue":{"expression":{"expression":{"id":81789,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43078:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43085:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43078:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43099:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":82950,"src":"43078:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43056:53:165"},{"assignments":[81794],"declarations":[{"constant":false,"id":81794,"mutability":"mutable","name":"success","nameLocation":"43124:7:165","nodeType":"VariableDeclaration","scope":81854,"src":"43119:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81793,"name":"bool","nodeType":"ElementaryTypeName","src":"43119:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81810,"initialValue":{"arguments":[{"id":81801,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43202:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81802,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43215:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43227:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43215:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43237:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83033,"src":"43215:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":81805,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43246:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43258:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83027,"src":"43246:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":81807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43266:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83043,"src":"43246:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43215:62:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":81796,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43147:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43154:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43147:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43168:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"43147:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81795,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75006,"src":"43134:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75006_$","typeString":"type(contract IWrappedVara)"}},"id":81799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43134:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75006","typeString":"contract IWrappedVara"}},"id":81800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43194:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"43134:67:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":81809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43134:144:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"43119:159:165"},{"expression":{"arguments":[{"id":81812,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81794,"src":"43296:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81813,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74627,"src":"43305:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43305:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81811,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43288:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43288:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81816,"nodeType":"ExpressionStatement","src":"43288:38:165"},{"assignments":[81818],"declarations":[{"constant":false,"id":81818,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"43345:20:165","nodeType":"VariableDeclaration","scope":81854,"src":"43337:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43337:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81833,"initialValue":{"arguments":[{"expression":{"expression":{"id":81823,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81701,"src":"43449:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43456:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74473,"src":"43449:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$82951_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43470:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":82947,"src":"43449:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":81826,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43483:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43495:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43483:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43505:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83033,"src":"43483:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":81829,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43513:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43525:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83024,"src":"43513:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83036_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43535:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":83035,"src":"43513:26:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":81820,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43380:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81819,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43368:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43368:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43406:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":74119,"src":"43368:63:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":81832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43368:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43337:216:165"},{"assignments":[81835],"declarations":[{"constant":false,"id":81835,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"43572:18:165","nodeType":"VariableDeclaration","scope":81854,"src":"43564:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43564:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81845,"initialValue":{"arguments":[{"expression":{"id":81840,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43654:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43666:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83027,"src":"43654:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":81842,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43675:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43687:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"43675:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83046_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":81837,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81788,"src":"43617:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81836,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"43605:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43605:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43630:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":74130,"src":"43605:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$83046_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":81844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43605:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"43564:133:165"},{"expression":{"arguments":[{"id":81848,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81818,"src":"43742:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81849,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81835,"src":"43764:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81850,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81734,"src":"43784:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83030_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43796:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"43784:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81846,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"43715:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43720:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83294,"src":"43715:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":81852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43715:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81708,"id":81853,"nodeType":"Return","src":"43708:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"42117:14:165","parameters":{"id":81705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81701,"mutability":"mutable","name":"router","nameLocation":"42148:6:165","nodeType":"VariableDeclaration","scope":81855,"src":"42132:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81700,"nodeType":"UserDefinedTypeName","pathNode":{"id":81699,"name":"Storage","nameLocations":["42132:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"42132:7:165"},"referencedDeclaration":74490,"src":"42132:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81704,"mutability":"mutable","name":"_batch","nameLocation":"42186:6:165","nodeType":"VariableDeclaration","scope":81855,"src":"42156:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81703,"nodeType":"UserDefinedTypeName","pathNode":{"id":81702,"name":"Gear.BatchCommitment","nameLocations":["42156:4:165","42161:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"42156:20:165"},"referencedDeclaration":83020,"src":"42156:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"42131:62:165"},"returnParameters":{"id":81708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81855,"src":"42211:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42211:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"42210:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82003,"nodeType":"FunctionDefinition","src":"43880:1705:165","nodes":[],"body":{"id":82002,"nodeType":"Block","src":"43995:1590:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81868,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44013:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44020:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44013:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44041:6:165","memberName":"length","nodeType":"MemberAccess","src":"44013:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44051:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44013:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81873,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74629,"src":"44054:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44054:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81867,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44005:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44005:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81876,"nodeType":"ExpressionStatement","src":"44005:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81877,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44100:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44107:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44100:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44128:6:165","memberName":"length","nodeType":"MemberAccess","src":"44100:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44138:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44100:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81887,"nodeType":"IfStatement","src":"44096:182:165","trueBody":{"id":81886,"nodeType":"Block","src":"44141:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44264:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81882,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"44254:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44254:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81866,"id":81885,"nodeType":"Return","src":"44247:20:165"}]}},{"assignments":[81892],"declarations":[{"constant":false,"id":81892,"mutability":"mutable","name":"_commitment","nameLocation":"44323:11:165","nodeType":"VariableDeclaration","scope":82002,"src":"44288:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":81891,"nodeType":"UserDefinedTypeName","pathNode":{"id":81890,"name":"Gear.ValidatorsCommitment","nameLocations":["44288:4:165","44293:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"44288:25:165"},"referencedDeclaration":82986,"src":"44288:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":81897,"initialValue":{"baseExpression":{"expression":{"id":81893,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81862,"src":"44337:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44344:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83019,"src":"44337:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$82986_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81896,"indexExpression":{"hexValue":"30","id":81895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44365:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"44337:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"44288:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81899,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44386:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44398:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"44386:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":81901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44409:6:165","memberName":"length","nodeType":"MemberAccess","src":"44386:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44418:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"44386:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81904,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"44421:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44421:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81898,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44378:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44378:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81907,"nodeType":"ExpressionStatement","src":"44378:65:165"},{"assignments":[81909],"declarations":[{"constant":false,"id":81909,"mutability":"mutable","name":"currentEraIndex","nameLocation":"44516:15:165","nodeType":"VariableDeclaration","scope":82002,"src":"44508:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81908,"name":"uint256","nodeType":"ElementaryTypeName","src":"44508:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81921,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81910,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44535:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44541:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44535:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81912,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44553:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44560:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"44553:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44573:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"44553:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"44535:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81916,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"44534:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":81917,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44586:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44593:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44586:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44603:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"44586:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44534:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44508:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81923,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44625:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44637:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"44625:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81925,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81909,"src":"44649:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":81926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44667:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44649:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44625:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81929,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74633,"src":"44670:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44670:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44617:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44617:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81932,"nodeType":"ExpressionStatement","src":"44617:76:165"},{"assignments":[81934],"declarations":[{"constant":false,"id":81934,"mutability":"mutable","name":"nextEraStart","nameLocation":"44712:12:165","nodeType":"VariableDeclaration","scope":82002,"src":"44704:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81933,"name":"uint256","nodeType":"ElementaryTypeName","src":"44704:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81945,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81935,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44727:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44734:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"44727:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44747:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83079,"src":"44727:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81938,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44759:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44766:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44759:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81940,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44776:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83170,"src":"44759:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":81941,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"44782:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44794:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"44782:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44759:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44727:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"44704:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81947,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"44820:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44826:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"44820:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81949,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81934,"src":"44839:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81950,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"44854:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44861:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74485,"src":"44854:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83175_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81952,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44871:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":83172,"src":"44854:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44839:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44820:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81955,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74635,"src":"44881:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44881:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81946,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44812:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44812:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81958,"nodeType":"ExpressionStatement","src":"44812:90:165"},{"assignments":[81963],"declarations":[{"constant":false,"id":81963,"mutability":"mutable","name":"_validators","nameLocation":"44984:11:165","nodeType":"VariableDeclaration","scope":82002,"src":"44960:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":81962,"nodeType":"UserDefinedTypeName","pathNode":{"id":81961,"name":"Gear.Validators","nameLocations":["44960:4:165","44965:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"44960:15:165"},"referencedDeclaration":82928,"src":"44960:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":81968,"initialValue":{"arguments":[{"id":81966,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81859,"src":"45025:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":81964,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"44998:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45003:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":83845,"src":"44998:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74490_storage_ptr_$returns$_t_struct$_Validators_$82928_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":81967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44998:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"44960:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81970,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81963,"src":"45050:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":81971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45062:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"45050:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81972,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45081:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45087:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"45081:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45050:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81975,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74637,"src":"45098:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45098:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81969,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45042:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45042:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81978,"nodeType":"ExpressionStatement","src":"45042:85:165"},{"expression":{"arguments":[{"id":81980,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81963,"src":"45220:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":81981,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45245:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45257:22:165","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82975,"src":"45245:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":81983,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45293:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45305:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82978,"src":"45293:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":81985,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45338:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45350:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":82980,"src":"45338:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":81987,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45397:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45409:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"45397:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":81989,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81934,"src":"45433:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81979,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82240,"src":"45190:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$82928_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$82907_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":81990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45190:265:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81991,"nodeType":"ExpressionStatement","src":"45190:265:165"},{"eventCall":{"arguments":[{"expression":{"id":81993,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45497:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45509:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"45497:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81992,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"45471:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45471:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81996,"nodeType":"EmitStatement","src":"45466:52:165"},{"expression":{"arguments":[{"id":81999,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81892,"src":"45566:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$82986_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":81997,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84099,"src":"45536:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84099_$","typeString":"type(library Gear)"}},"id":81998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45541:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83322,"src":"45536:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$82986_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":82000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45536:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81866,"id":82001,"nodeType":"Return","src":"45529:49:165"}]},"documentation":{"id":81856,"nodeType":"StructuredDocumentation","src":"43819:56:165","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"43889:17:165","parameters":{"id":81863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81859,"mutability":"mutable","name":"router","nameLocation":"43923:6:165","nodeType":"VariableDeclaration","scope":82003,"src":"43907:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81858,"nodeType":"UserDefinedTypeName","pathNode":{"id":81857,"name":"Storage","nameLocations":["43907:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"43907:7:165"},"referencedDeclaration":74490,"src":"43907:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81862,"mutability":"mutable","name":"_batch","nameLocation":"43961:6:165","nodeType":"VariableDeclaration","scope":82003,"src":"43931:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81861,"nodeType":"UserDefinedTypeName","pathNode":{"id":81860,"name":"Gear.BatchCommitment","nameLocations":["43931:4:165","43936:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83020,"src":"43931:20:165"},"referencedDeclaration":83020,"src":"43931:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83020_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43906:62:165"},"returnParameters":{"id":81866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82003,"src":"43986:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43986:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43985:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82123,"nodeType":"FunctionDefinition","src":"45591:1168:165","nodes":[],"body":{"id":82122,"nodeType":"Block","src":"45735:1024:165","nodes":[],"statements":[{"assignments":[82016],"declarations":[{"constant":false,"id":82016,"mutability":"mutable","name":"transitionsLen","nameLocation":"45753:14:165","nodeType":"VariableDeclaration","scope":82122,"src":"45745:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82015,"name":"uint256","nodeType":"ElementaryTypeName","src":"45745:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82019,"initialValue":{"expression":{"id":82017,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82010,"src":"45770:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45783:6:165","memberName":"length","nodeType":"MemberAccess","src":"45770:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45745:44:165"},{"assignments":[82021],"declarations":[{"constant":false,"id":82021,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"45807:19:165","nodeType":"VariableDeclaration","scope":82122,"src":"45799:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82020,"name":"uint256","nodeType":"ElementaryTypeName","src":"45799:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82025,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82022,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"45829:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":82023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45846:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"45829:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45799:49:165"},{"assignments":[82027],"declarations":[{"constant":false,"id":82027,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"45866:23:165","nodeType":"VariableDeclaration","scope":82122,"src":"45858:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82026,"name":"uint256","nodeType":"ElementaryTypeName","src":"45858:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82032,"initialValue":{"arguments":[{"id":82030,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82021,"src":"45908:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82028,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"45892:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45899:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"45892:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":82031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45892:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45858:70:165"},{"assignments":[82034],"declarations":[{"constant":false,"id":82034,"mutability":"mutable","name":"offset","nameLocation":"45946:6:165","nodeType":"VariableDeclaration","scope":82122,"src":"45938:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82033,"name":"uint256","nodeType":"ElementaryTypeName","src":"45938:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82036,"initialValue":{"hexValue":"30","id":82035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45955:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45938:18:165"},{"body":{"id":82113,"nodeType":"Block","src":"46012:640:165","statements":[{"assignments":[82051],"declarations":[{"constant":false,"id":82051,"mutability":"mutable","name":"transition","nameLocation":"46056:10:165","nodeType":"VariableDeclaration","scope":82113,"src":"46026:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":82050,"nodeType":"UserDefinedTypeName","pathNode":{"id":82049,"name":"Gear.StateTransition","nameLocations":["46026:4:165","46031:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"46026:20:165"},"referencedDeclaration":83167,"src":"46026:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":82055,"initialValue":{"baseExpression":{"id":82052,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82010,"src":"46069:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82054,"indexExpression":{"id":82053,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"46082:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46069:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"46026:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82057,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82006,"src":"46107:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46114:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"46107:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"46127:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"46107:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82062,"indexExpression":{"expression":{"id":82060,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46136:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46147:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"46136:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46107:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46159:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46107:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82065,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74615,"src":"46162:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46162:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82056,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46099:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46099:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82068,"nodeType":"ExpressionStatement","src":"46099:80:165"},{"assignments":[82070],"declarations":[{"constant":false,"id":82070,"mutability":"mutable","name":"value","nameLocation":"46202:5:165","nodeType":"VariableDeclaration","scope":82113,"src":"46194:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82069,"name":"uint128","nodeType":"ElementaryTypeName","src":"46194:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82072,"initialValue":{"hexValue":"30","id":82071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46210:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"46194:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82073,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46230:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46241:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"46230:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46259:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"46230:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":82079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"46264:38:165","subExpression":{"expression":{"id":82077,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46265:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46276:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"46265:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"46230:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82087,"nodeType":"IfStatement","src":"46226:144:165","trueBody":{"id":82086,"nodeType":"Block","src":"46304:66:165","statements":[{"expression":{"id":82084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82081,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82070,"src":"46322:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82082,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46330:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46341:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83153,"src":"46330:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"46322:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82085,"nodeType":"ExpressionStatement","src":"46322:33:165"}]}},{"assignments":[82089],"declarations":[{"constant":false,"id":82089,"mutability":"mutable","name":"transitionHash","nameLocation":"46392:14:165","nodeType":"VariableDeclaration","scope":82113,"src":"46384:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46384:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82099,"initialValue":{"arguments":[{"id":82097,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46474:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":82091,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82051,"src":"46417:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46428:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83141,"src":"46417:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82090,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"46409:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":82093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46409:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":82094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46437:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":74394,"src":"46409:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83167_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":82095,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82070,"src":"46467:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"46409:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83167_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46409:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"46384:101:165"},{"expression":{"arguments":[{"id":82103,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46525:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82104,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82034,"src":"46550:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82105,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82089,"src":"46558:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82100,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"46499:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46506:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"46499:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":82106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46499:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82107,"nodeType":"ExpressionStatement","src":"46499:74:165"},{"id":82112,"nodeType":"UncheckedBlock","src":"46587:55:165","statements":[{"expression":{"id":82110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82108,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82034,"src":"46615:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":82109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46625:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"46615:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82111,"nodeType":"ExpressionStatement","src":"46615:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82041,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"45987:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":82042,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82016,"src":"45991:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45987:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82114,"initializationExpression":{"assignments":[82038],"declarations":[{"constant":false,"id":82038,"mutability":"mutable","name":"i","nameLocation":"45980:1:165","nodeType":"VariableDeclaration","scope":82114,"src":"45972:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82037,"name":"uint256","nodeType":"ElementaryTypeName","src":"45972:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82040,"initialValue":{"hexValue":"30","id":82039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45984:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"45972:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"46007:3:165","subExpression":{"id":82044,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"46007:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82046,"nodeType":"ExpressionStatement","src":"46007:3:165"},"nodeType":"ForStatement","src":"45967:685:165"},{"expression":{"arguments":[{"id":82117,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82027,"src":"46704:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":82118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46729:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":82119,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82021,"src":"46732:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82115,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"46669:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":82116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46676:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"46669:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":82120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46669:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82014,"id":82121,"nodeType":"Return","src":"46662:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"45600:18:165","parameters":{"id":82011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82006,"mutability":"mutable","name":"router","nameLocation":"45635:6:165","nodeType":"VariableDeclaration","scope":82123,"src":"45619:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82005,"nodeType":"UserDefinedTypeName","pathNode":{"id":82004,"name":"Storage","nameLocations":["45619:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"45619:7:165"},"referencedDeclaration":74490,"src":"45619:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":82010,"mutability":"mutable","name":"_transitions","nameLocation":"45675:12:165","nodeType":"VariableDeclaration","scope":82123,"src":"45643:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82008,"nodeType":"UserDefinedTypeName","pathNode":{"id":82007,"name":"Gear.StateTransition","nameLocations":["45643:4:165","45648:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83167,"src":"45643:20:165"},"referencedDeclaration":83167,"src":"45643:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83167_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82009,"nodeType":"ArrayTypeName","src":"45643:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83167_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"45618:70:165"},"returnParameters":{"id":82014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82123,"src":"45722:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45722:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"45721:9:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82240,"nodeType":"FunctionDefinition","src":"46765:1539:165","nodes":[],"body":{"id":82239,"nodeType":"Block","src":"47086:1218:165","nodes":[],"statements":[{"condition":{"id":82141,"name":"_hasAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82128,"src":"47100:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82170,"nodeType":"IfStatement","src":"47096:752:165","trueBody":{"id":82169,"nodeType":"Block","src":"47125:723:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":82145,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47530:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47554:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82904,"src":"47530:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":82147,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47557:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47581:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82906,"src":"47557:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82143,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"47507:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":82144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47513:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":40634,"src":"47507:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":82149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47507:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82150,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74552,"src":"47601:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47601:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82142,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"47482:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47482:166:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82153,"nodeType":"ExpressionStatement","src":"47482:166:165"},{"expression":{"id":82158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82154,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47662:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47674:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82912,"src":"47662:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82157,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"47696:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"47662:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":82159,"nodeType":"ExpressionStatement","src":"47662:57:165"},{"expression":{"id":82167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82160,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47733:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82162,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"47745:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82915,"src":"47733:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82165,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82133,"src":"47802:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":82163,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84555,"src":"47788:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84555_$","typeString":"type(library SSTORE2)"}},"id":82164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47796:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":84411,"src":"47788:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":82166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47788:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"47733:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82168,"nodeType":"ExpressionStatement","src":"47733:104:165"}]}},{"body":{"id":82198,"nodeType":"Block","src":"47911:114:165","statements":[{"assignments":[82184],"declarations":[{"constant":false,"id":82184,"mutability":"mutable","name":"_validator","nameLocation":"47933:10:165","nodeType":"VariableDeclaration","scope":82198,"src":"47925:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82183,"name":"address","nodeType":"ElementaryTypeName","src":"47925:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82189,"initialValue":{"baseExpression":{"expression":{"id":82185,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47946:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47958:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"47946:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82188,"indexExpression":{"id":82187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47963:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47946:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"47925:40:165"},{"expression":{"id":82196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82190,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47979:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47991:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"47979:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82194,"indexExpression":{"id":82192,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82184,"src":"47995:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"47979:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":82195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48009:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"47979:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82197,"nodeType":"ExpressionStatement","src":"47979:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82175,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47877:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":82176,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"47881:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47893:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"47881:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47898:6:165","memberName":"length","nodeType":"MemberAccess","src":"47881:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"47877:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82199,"initializationExpression":{"assignments":[82172],"declarations":[{"constant":false,"id":82172,"mutability":"mutable","name":"i","nameLocation":"47870:1:165","nodeType":"VariableDeclaration","scope":82199,"src":"47862:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82171,"name":"uint256","nodeType":"ElementaryTypeName","src":"47862:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82174,"initialValue":{"hexValue":"30","id":82173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47874:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47862:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"47906:3:165","subExpression":{"id":82180,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82172,"src":"47906:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82182,"nodeType":"ExpressionStatement","src":"47906:3:165"},"nodeType":"ForStatement","src":"47857:168:165"},{"body":{"id":82225,"nodeType":"Block","src":"48086:111:165","statements":[{"assignments":[82212],"declarations":[{"constant":false,"id":82212,"mutability":"mutable","name":"_validator","nameLocation":"48108:10:165","nodeType":"VariableDeclaration","scope":82225,"src":"48100:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82211,"name":"address","nodeType":"ElementaryTypeName","src":"48100:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82216,"initialValue":{"baseExpression":{"id":82213,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48121:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82215,"indexExpression":{"id":82214,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48136:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"48121:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48100:38:165"},{"expression":{"id":82223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82217,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48152:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48164:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82920,"src":"48152:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82221,"indexExpression":{"id":82219,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82212,"src":"48168:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"48152:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":82222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48182:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"48152:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82224,"nodeType":"ExpressionStatement","src":"48152:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82204,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48054:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82205,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48058:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48073:6:165","memberName":"length","nodeType":"MemberAccess","src":"48058:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48054:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82226,"initializationExpression":{"assignments":[82201],"declarations":[{"constant":false,"id":82201,"mutability":"mutable","name":"i","nameLocation":"48047:1:165","nodeType":"VariableDeclaration","scope":82226,"src":"48039:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82200,"name":"uint256","nodeType":"ElementaryTypeName","src":"48039:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82203,"initialValue":{"hexValue":"30","id":82202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48051:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"48039:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"48081:3:165","subExpression":{"id":82208,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82201,"src":"48081:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82210,"nodeType":"ExpressionStatement","src":"48081:3:165"},"nodeType":"ForStatement","src":"48034:163:165"},{"expression":{"id":82231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82227,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48206:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48218:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":82924,"src":"48206:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82230,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82136,"src":"48225:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"48206:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82232,"nodeType":"ExpressionStatement","src":"48206:33:165"},{"expression":{"id":82237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82233,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82126,"src":"48249:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48261:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":82927,"src":"48249:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82236,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82138,"src":"48280:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48249:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82238,"nodeType":"ExpressionStatement","src":"48249:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"46774:16:165","parameters":{"id":82139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82126,"mutability":"mutable","name":"_validators","nameLocation":"46824:11:165","nodeType":"VariableDeclaration","scope":82240,"src":"46800:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82125,"nodeType":"UserDefinedTypeName","pathNode":{"id":82124,"name":"Gear.Validators","nameLocations":["46800:4:165","46805:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":82928,"src":"46800:15:165"},"referencedDeclaration":82928,"src":"46800:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$82928_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":82128,"mutability":"mutable","name":"_hasAggregatedPublicKey","nameLocation":"46850:23:165","nodeType":"VariableDeclaration","scope":82240,"src":"46845:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82127,"name":"bool","nodeType":"ElementaryTypeName","src":"46845:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":82131,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"46915:23:165","nodeType":"VariableDeclaration","scope":82240,"src":"46883:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82130,"nodeType":"UserDefinedTypeName","pathNode":{"id":82129,"name":"Gear.AggregatedPublicKey","nameLocations":["46883:4:165","46888:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82907,"src":"46883:24:165"},"referencedDeclaration":82907,"src":"46883:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82907_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82133,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"46961:34:165","nodeType":"VariableDeclaration","scope":82240,"src":"46948:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82132,"name":"bytes","nodeType":"ElementaryTypeName","src":"46948:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82136,"mutability":"mutable","name":"_newValidators","nameLocation":"47022:14:165","nodeType":"VariableDeclaration","scope":82240,"src":"47005:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82134,"name":"address","nodeType":"ElementaryTypeName","src":"47005:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82135,"nodeType":"ArrayTypeName","src":"47005:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82138,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"47054:17:165","nodeType":"VariableDeclaration","scope":82240,"src":"47046:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82137,"name":"uint256","nodeType":"ElementaryTypeName","src":"47046:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46790:287:165"},"returnParameters":{"id":82140,"nodeType":"ParameterList","parameters":[],"src":"47086:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82253,"nodeType":"FunctionDefinition","src":"48310:192:165","nodes":[],"body":{"id":82252,"nodeType":"Block","src":"48375:127:165","nodes":[],"statements":[{"assignments":[82247],"declarations":[{"constant":false,"id":82247,"mutability":"mutable","name":"slot","nameLocation":"48393:4:165","nodeType":"VariableDeclaration","scope":82252,"src":"48385:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82246,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48385:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82250,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82248,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82265,"src":"48400:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48400:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48385:32:165"},{"AST":{"nativeSrc":"48453:43:165","nodeType":"YulBlock","src":"48453:43:165","statements":[{"nativeSrc":"48467:19:165","nodeType":"YulAssignment","src":"48467:19:165","value":{"name":"slot","nativeSrc":"48482:4:165","nodeType":"YulIdentifier","src":"48482:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"48467:11:165","nodeType":"YulIdentifier","src":"48467:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82244,"isOffset":false,"isSlot":true,"src":"48467:11:165","suffix":"slot","valueSize":1},{"declaration":82247,"isOffset":false,"isSlot":false,"src":"48482:4:165","valueSize":1}],"flags":["memory-safe"],"id":82251,"nodeType":"InlineAssembly","src":"48428:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"48319:7:165","parameters":{"id":82241,"nodeType":"ParameterList","parameters":[],"src":"48326:2:165"},"returnParameters":{"id":82245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82244,"mutability":"mutable","name":"router","nameLocation":"48367:6:165","nodeType":"VariableDeclaration","scope":82253,"src":"48351:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82243,"nodeType":"UserDefinedTypeName","pathNode":{"id":82242,"name":"Storage","nameLocations":["48351:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"48351:7:165"},"referencedDeclaration":74490,"src":"48351:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"48350:24:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82265,"nodeType":"FunctionDefinition","src":"48508:128:165","nodes":[],"body":{"id":82264,"nodeType":"Block","src":"48566:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82260,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79486,"src":"48610:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82258,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48583:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48595:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48583:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48583:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48624:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48583:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82257,"id":82263,"nodeType":"Return","src":"48576:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"48517:15:165","parameters":{"id":82254,"nodeType":"ParameterList","parameters":[],"src":"48532:2:165"},"returnParameters":{"id":82257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82256,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82265,"src":"48557:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48557:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48556:9:165"},"scope":82353,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82293,"nodeType":"FunctionDefinition","src":"48642:240:165","nodes":[],"body":{"id":82292,"nodeType":"Block","src":"48710:172:165","nodes":[],"statements":[{"assignments":[82273],"declarations":[{"constant":false,"id":82273,"mutability":"mutable","name":"slot","nameLocation":"48728:4:165","nodeType":"VariableDeclaration","scope":82292,"src":"48720:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48720:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82278,"initialValue":{"arguments":[{"id":82276,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82267,"src":"48762:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82274,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"48735:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":82275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48750:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"48735:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48735:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"48720:52:165"},{"expression":{"id":82286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82282,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79486,"src":"48809:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82279,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"48782:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48794:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"48782:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48782:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48823:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"48782:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82285,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82273,"src":"48831:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"48782:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82287,"nodeType":"ExpressionStatement","src":"48782:53:165"},{"eventCall":{"arguments":[{"id":82289,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82273,"src":"48870:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82288,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74541,"src":"48851:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48851:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82291,"nodeType":"EmitStatement","src":"48846:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":82270,"kind":"modifierInvocation","modifierName":{"id":82269,"name":"onlyOwner","nameLocations":["48700:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"48700:9:165"},"nodeType":"ModifierInvocation","src":"48700:9:165"}],"name":"_setStorageSlot","nameLocation":"48651:15:165","parameters":{"id":82268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82267,"mutability":"mutable","name":"namespace","nameLocation":"48681:9:165","nodeType":"VariableDeclaration","scope":82293,"src":"48667:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82266,"name":"string","nodeType":"ElementaryTypeName","src":"48667:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48666:25:165"},"returnParameters":{"id":82271,"nodeType":"ParameterList","parameters":[],"src":"48710:0:165"},"scope":82353,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82352,"nodeType":"FunctionDefinition","src":"49030:396:165","nodes":[],"body":{"id":82351,"nodeType":"Block","src":"49071:355:165","nodes":[],"statements":[{"assignments":[82301],"declarations":[{"constant":false,"id":82301,"mutability":"mutable","name":"router","nameLocation":"49097:6:165","nodeType":"VariableDeclaration","scope":82351,"src":"49081:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82300,"nodeType":"UserDefinedTypeName","pathNode":{"id":82299,"name":"Storage","nameLocations":["49081:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74490,"src":"49081:7:165"},"referencedDeclaration":74490,"src":"49081:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82304,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82302,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82253,"src":"49106:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74490_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49106:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"49081:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82306,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82301,"src":"49133:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49140:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74465,"src":"49133:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83080_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49153:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"49133:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49169:1:165","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":82310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49161:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49161:7:165","typeDescriptions":{}}},"id":82312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49161:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"49133:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82314,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74567,"src":"49173:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49173:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82305,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49125:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49125:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82317,"nodeType":"ExpressionStatement","src":"49125:82:165"},{"assignments":[82319],"declarations":[{"constant":false,"id":82319,"mutability":"mutable","name":"value","nameLocation":"49226:5:165","nodeType":"VariableDeclaration","scope":82351,"src":"49218:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82318,"name":"uint128","nodeType":"ElementaryTypeName","src":"49218:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82325,"initialValue":{"arguments":[{"expression":{"id":82322,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49242:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49246:5:165","memberName":"value","nodeType":"MemberAccess","src":"49242:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"49234:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":82320,"name":"uint128","nodeType":"ElementaryTypeName","src":"49234:7:165","typeDescriptions":{}}},"id":82324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49234:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"49218:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82327,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82319,"src":"49270:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49278:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49270:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82330,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74641,"src":"49281:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49281:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49262:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49262:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82333,"nodeType":"ExpressionStatement","src":"49262:39:165"},{"assignments":[82335],"declarations":[{"constant":false,"id":82335,"mutability":"mutable","name":"actorId","nameLocation":"49320:7:165","nodeType":"VariableDeclaration","scope":82351,"src":"49312:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82334,"name":"address","nodeType":"ElementaryTypeName","src":"49312:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82338,"initialValue":{"expression":{"id":82336,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"49330:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49334:6:165","memberName":"sender","nodeType":"MemberAccess","src":"49330:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"49312:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82340,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82301,"src":"49358:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74490_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49365:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74489,"src":"49358:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83129_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49378:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83113,"src":"49358:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82344,"indexExpression":{"id":82343,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82335,"src":"49387:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49358:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49399:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"49358:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82347,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74615,"src":"49402:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49402:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"49350:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49350:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82350,"nodeType":"ExpressionStatement","src":"49350:69:165"}]},"documentation":{"id":82294,"nodeType":"StructuredDocumentation","src":"48888:137:165","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":82297,"kind":"modifierInvocation","modifierName":{"id":82296,"name":"whenNotPaused","nameLocations":["49057:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"49057:13:165"},"nodeType":"ModifierInvocation","src":"49057:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82295,"nodeType":"ParameterList","parameters":[],"src":"49037:2:165"},"returnParameters":{"id":82298,"nodeType":"ParameterList","parameters":[],"src":"49071:0:165"},"scope":82353,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79470,"name":"IRouter","nameLocations":["1576:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74990,"src":"1576:7:165"},"id":79471,"nodeType":"InheritanceSpecifier","src":"1576:7:165"},{"baseName":{"id":79472,"name":"OwnableUpgradeable","nameLocations":["1589:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1589:18:165"},"id":79473,"nodeType":"InheritanceSpecifier","src":"1589:18:165"},{"baseName":{"id":79474,"name":"PausableUpgradeable","nameLocations":["1613:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"1613:19:165"},"id":79475,"nodeType":"InheritanceSpecifier","src":"1613:19:165"},{"baseName":{"id":79476,"name":"EIP712Upgradeable","nameLocations":["1638:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":44416,"src":"1638:17:165"},"id":79477,"nodeType":"InheritanceSpecifier","src":"1638:17:165"},{"baseName":{"id":79478,"name":"NoncesUpgradeable","nameLocations":["1661:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":43698,"src":"1661:17:165"},"id":79479,"nodeType":"InheritanceSpecifier","src":"1661:17:165"},{"baseName":{"id":79480,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1684:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"1684:35:165"},"id":79481,"nodeType":"InheritanceSpecifier","src":"1684:35:165"},{"baseName":{"id":79482,"name":"UUPSUpgradeable","nameLocations":["1725:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1725:15:165"},"id":79483,"nodeType":"InheritanceSpecifier","src":"1725:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82353,46243,44833,43943,43698,44416,44823,43858,42322,43484,42590,74990],"name":"Router","nameLocation":"1562:6:165","scope":82354,"usedErrors":[42158,42163,42339,42342,43601,43737,43740,43875,45427,45440,46100,46105,47372,48774,50701,50706,50711,53880,74544,74547,74550,74552,74555,74558,74561,74564,74567,74570,74577,74586,74591,74598,74601,74603,74605,74607,74609,74611,74613,74615,74617,74619,74621,74623,74625,74627,74629,74631,74633,74635,74637,74639,74641,82883,82886,82889,82892,82895,82898,82901],"usedEvents":[42169,42347,43729,43734,44781,44803,74495,74500,74505,74512,74517,74522,74529,74536,74541]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":165} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"bumpProtocolVersion","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]},{"name":"head","type":"bytes32","internalType":"bytes32"},{"name":"lastAdvancedEthBlock","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"hasAggregatedPublicKey","type":"bool","internalType":"bool"},{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"name":"_signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterfaceAndExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"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":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithExecutableBalance","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_initialExecutableBalance","type":"uint128","internalType":"uint128"},{"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":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"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":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","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":"protocolVersion","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"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":"_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":"requestCodeValidationBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationExtraFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestCodeValidationOnBehalf","inputs":[{"name":"_requester","type":"address","internalType":"address"},{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_blobHashes","type":"bytes32[]","internalType":"bytes32[]"},{"name":"_deadline","type":"uint256","internalType":"uint256"},{"name":"_v1","type":"uint8","internalType":"uint8"},{"name":"_r1","type":"bytes32","internalType":"bytes32"},{"name":"_s1","type":"bytes32","internalType":"bytes32"},{"name":"_v2","type":"uint8","internalType":"uint8"},{"name":"_r2","type":"bytes32","internalType":"bytes32"},{"name":"_s2","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationBaseFee","inputs":[{"name":"newBaseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRequestCodeValidationExtraFee","inputs":[{"name":"newExtraFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"},{"name":"maxValidators","type":"uint16","internalType":"uint16"},{"name":"requestCodeValidationBaseFee","type":"uint256","internalType":"uint256"},{"name":"requestCodeValidationExtraFee","type":"uint256","internalType":"uint256"},{"name":"protocolVersion","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"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":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"BatchCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","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"}],"anonymous":false},{"type":"event","name":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"EBCommitted","inputs":[{"name":"ethBlockHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"MBCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"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":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"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":"ProtocolVersionChanged","inputs":[{"name":"newProtocolVersion","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"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":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidBlobHash","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"providedBlobHash","type":"bytes32","internalType":"bytes32"},{"name":"expectedBlobHash","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"InvalidBlobHashesLength","inputs":[{"name":"providedLength","type":"uint256","internalType":"uint256"},{"name":"expectedLength","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"requester","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidTimestamp","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":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"TransferFromFailed","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020615cee5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051615c2790816100c782396080518181816128db015261296e0152f35b6001600160401b0319166001600160401b039081175f516020615cee5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022613c93565b5f516020615ba75f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613539575080630b9737ce146135065780630c18d2771461343b5780630d91bf2a1461326d57806311bec80d1461323a5780631622441d14612dc7578063188509e914612d9957806328e24b3d14612d6b5780632ae9c60014612d3e5780633644e51514612d235780633683c4d214612c665780633bd109fa14612c175780633d43b41814612bc35780633f4ba83a14612b435780634f1ef2861461292f57806352d1902d146128c857806353f7fd4814611edc5780635c975abb14611ead5780636c2eb3501461194a578063715018a6146118e157806371a8cf2d146118b35780637ecebe001461185b57806382bdeaad146117435780638456cb59146116d057806384b0196e146115a857806384d22a4f1461154a57806385dd663d146114cc57806388f50cf0146114935780638b1edf1e146114345780638c4ace6a146112c55780638da5cb5b146112905780638f381dbe1461124a5780639067088e1461120157806396a2ddfa146111d35780639eb939a81461117c578063a5d53a44146110fc578063ad3cb1cc146110b3578063baaf020114610fb6578063c13911e814610f72578063c2eb812f14610bce578063ca1e781914610b7e578063cacf66ab14610b46578063d456fd5114610b10578063e3a6684f14610ad1578063e6fabc0914610a98578063ed612f8c14610a60578063edc8722514610a0b578063ee32004f14610825578063f0fd702a146103cd578063f1ef31ec1461039f578063f2fde38b14610372578063f4f20ac0146103395763facd743b0361000f5734610336576020366003190112610336576102f861358f565b60036103135f516020615ba75f395f51905f525442906155d7565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103365780600319360112610336575f516020615ba75f395f51905f5254600701546040516001600160a01b039091168152602090f35b50346103365760203660031901126103365761039c61038f61358f565b610397613c60565b613bef565b80f35b50346103365780600319360112610336576020601f5f516020615ba75f395f51905f52540154604051908152f35b503461033657610140366003190112610336576103e861358f565b602435906044356001600160401b0381116108215761040b9036906004016135cd565b90916064359060843560ff8116810361081d5760e4359060ff8216820361081957610434613c93565b87491561080a575f516020615ba75f395f51905f5254946001860154156107fb576019860196888a528760205260ff60408b20541660038110156107e7576107d857895b80496107ca578083036107b35750895b82811061076c57508542116107585760405160208101906001600160fb1b038411610754576104d360208261059e956105a79760051b8091873781010301601f19810183528261367e565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261056c60e08261367e565b51902061057761579f565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615880565b90929192615902565b6001600160a01b031681810361073f57505086906105dc60018060a01b0360068701541695601f601e82015491015490613a50565b93853b1561073b5760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af161071e575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156107135784916106e4575b50156106d55781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b610706915060203d60201161070c575b6106fe818361367e565b810190613820565b5f61068d565b503d6106f4565b6040513d86823e3d90fd5b8161072b9194939461367e565b6107375790855f610640565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b80498061077a8386866139ea565b35146107878386866139ea565b359015610798575050600101610488565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107d390613be1565b610478565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b50346103365761012036600319011261033657610840613563565b610848613579565b6084356001600160801b038116908181036109b3578460c43560ff811681036109a457610873613c93565b610881602435600435613cba565b6006015490936001600160a01b0390911691823b15610821576108c98480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016137d6565b038183885af16109f6575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109eb5786916109cc575b50156109bd576001600160a01b03908116939081166109b7575033915b833b156109b357604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af180156109a85761098f575b602082604051908152f35b61099a83809261367e565b6109a45781610984565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610939565b631e4e7d0960e21b8552600485fd5b6109e5915060203d60201161070c576106fe818361367e565b5f61091c565b6040513d88823e3d90fd5b81610a009161367e565b61073b57825f6108d4565b50346103365780600319360112610336576020610a585f516020615ba75f395f51905f525460086004610a3e42846155d7565b0154910154906001600160801b038260801c921690615530565b604051908152f35b503461033657806003193601126103365760206004610a8e5f516020615ba75f395f51905f525442906155d7565b0154604051908152f35b50346103365780600319360112610336575f516020615ba75f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610336578060031936011261033657604060085f516020615ba75f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610336578060031936011261033657602065ffffffffffff60045f516020615ba75f395f51905f5254015416604051908152f35b5034610336578060031936011261033657602065ffffffffffff60025f516020615ba75f395f51905f52540154821c16604051908152f35b5034610336578060031936011261033657610bca610bb66004610bb05f516020615ba75f395f51905f525442906155d7565b01613b8e565b604051918291602083526020830190613753565b0390f35b5034610336578060031936011261033657604051610beb81613647565b610bf3613add565b8152604051610c018161362c565b5f8152602081015f90526020820152610c18613add565b6040820152610c25613b5b565b6060820152604051610c368161362c565b5f80825260208201526080820152610c4c613add565b60a08201528160c08201528160e082015281610100820152816101208201528161014082015261016001525f516020615ba75f395f51905f5254610c8e613b5b565b50610c9b6009820161582b565b90610ca8600f820161582b565b60088201549260405193610cbb85613663565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e830154601f8401549160208501549360405196610d0b88613647565b604051610d17816135fd565b60018801548152600288015463ffffffff8116602083015260201c65ffffffffffff166040820152885260405198610d4e8a61362c565b60038801548a52600488015465ffffffffffff1660208b015260208901998a5260405190610d7b826135fd565b60058901546001600160a01b03908116835260068a01548116602084015260078a0154166040808401919091528a0191825260608a01908152610dc060158a01613a22565b9860808b01998a52601601610dd490613afb565b9160a08b0192835260c08b0193845260e08b019485526101008b019586526101208b019687526101408b019788526101608b019889526040519b8c9b60208d52518c815190602001528c602082015163ffffffff1690604001526040015165ffffffffffff1660608d015251805160808d01526020015165ffffffffffff1660a08c015251600160a01b6001900381511660c08c0152600160a01b6001900360208201511660e08c0152600160a01b600190039060400151166101008b0152516101208a01610280905280516001600160801b03166102a08b015260208101516001600160801b03166102c08b015260408101516102e08b01608090526103208b01610edf9161378f565b90606001519061029f198b8203016103008c0152610efc9161378f565b975180516001600160401b03166101408b0152602001516001600160801b03166101608a01525180516101808a015260208101516101a08a0152604001516101c0890152516101e0880152516102008701525161ffff166102208601525161024085015251610260840152516102808301520390f35b50346103365760203660031901126103365760ff604060209260195f516020615ba75f395f51905f52540160043582528452205416610fb4604051809261370e565bf35b5034610336576020366003190112610336576004356001600160401b0381116109a457610fe79036906004016135cd565b905f516020615ba75f395f51905f5254906110018361397f565b9161100f604051938461367e565b83835261101b8461397f565b602084019490601f1901368637601a869201915b81811061107a57868587604051928392602084019060208552518091526040840192915b818110611061575050500390f35b8251845285945060209384019390920191600101611053565b8061109061108b60019385886139ea565b613a5d565b828060a01b03165f528360205260405f20546110ac8288613a0e565b520161102f565b503461033657806003193601126103365750610bca6040516110d660408261367e565b60058152640352e302e360dc1b602082015260405191829160208352602083019061372f565b50346103365780600319360112610336575f516020615ba75f395f51905f52546001600160a01b03906002906111339042906155d7565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c808252019060408201918260405260208352611177603f1992606083019061372f565b030190f35b5034610336578060031936011261033657611195613add565b5060606111b260165f516020615ba75f395f51905f525401613afb565b610fb460405180926040809180518452602081015160208501520151910152565b50346103365780600319360112610336576020601b5f516020615ba75f395f51905f52540154604051908152f35b50346103365760203660031901126103365761121b61358f565b601a5f516020615ba75f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461033657602036600319011261033657600435906001600160401b03821161033657602061128661128036600486016135cd565b90613a71565b6040519015158152f35b50346103365780600319360112610336575f516020615b275f395f51905f52546040516001600160a01b039091168152602090f35b50346103365760a03660031901126103365760043560443560ff8116810361073b576112ef613c93565b824915611425575f516020615ba75f395f51905f52546001810154156114165760198101918385528260205260ff6040862054166003811015611402576113f3576006820154601e9092015485926001600160a01b031691823b156108215760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af16113de575b50506040516323b872dd60e01b815233600482015230602482015260448101919091529160209183918290816064810161067b565b816113e89161367e565b61073b57825f6113a9565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103365780600319360112610336575f516020615ba75f395f51905f525460018101908154611484576002015463ffffffff1640908115611475575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103365780600319360112610336575f516020615ba75f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103365780600319360112610336576114e5613c60565b60205f516020615ba75f395f51905f5254018054906001820180921161153657817f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9260209255604051908152a180f35b634e487b7160e01b83526011600452602483fd5b5034610336578060031936011261033657611563613859565b50604061158060155f516020615ba75f395f51905f525401613a22565b610fb4825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103365780600319360112610336575f516020615b675f395f51905f525415806116ba575b1561167d57611621906115e06153b6565b906115e9615483565b90602061162f604051936115fd838661367e565b8385525f368137604051968796600f60f81b885260e08589015260e088019061372f565b90868203604088015261372f565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b82811061166657505050500390f35b835185528695509381019392810192600101611657565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615c075f395f51905f5254156115cf565b50346103365780600319360112610336576116e9613c60565b6116f1613c93565b600160ff195f516020615bc75f395f51905f525416175f516020615bc75f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610336576020366003190112610336576004356001600160401b0381116109a4576117749036906004016135cd565b905f516020615ba75f395f51905f52549061178e8361397f565b9161179c604051938461367e565b8383526117a88461397f565b602084019490601f19013686376019869201915b81811061181157868587604051928392602084019060208552518091526040840192915b8181106117ee575050500390f35b9193509160208082611803600194885161370e565b0194019101918493926117e0565b61181c8183866139ea565b3587528260205260ff6040882054166118358287613a0e565b600382101561184757526001016117bc565b634e487b7160e01b89526021600452602489fd5b5034610336576020366003190112610336576020906040906001600160a01b0361188361358f565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610336578060031936011261033657602060035f516020615ba75f395f51905f52540154604051908152f35b50346103365780600319360112610336576118fa613c60565b5f516020615b275f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610336578060031936011261033657611963613c60565b5f516020615be75f395f51905f525460ff8160401c16908115611e98575b50611e89575f516020615be75f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615b275f395f51905f52546119db906001600160a01b03166119d3615800565b610397615800565b6119e361388f565b906119ec6138bc565b906119f5615800565b6119fd615800565b82516001600160401b038111611d8c57611a245f516020615b075f395f51905f525461537e565b601f8111611e25575b506020601f8211600114611dab57829394829392611da0575b50508160011b915f199060031b1c1916175f516020615b075f395f51905f52555b81516001600160401b038111611d8c57611a8e5f516020615b475f395f51905f525461537e565b601f8111611d1f575b50602092601f8211600114611ca657928293829392611c9b575b50508160011b915f199060031b1c1916175f516020615b475f395f51905f52555b805f516020615b675f395f51905f5255805f516020615c075f395f51905f52555f516020615ba75f395f51905f5254611b096152e6565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611b578161362c565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611b8242846155d7565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa80156109a857611bd3918491611c6c575b50613933565b806103e8026103e881048203611c5857601e830155806101f402906101f48204036115365781602091601f6001940155015560ff60401b195f516020615be75f395f51905f5254165f516020615be75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b84526011600452602484fd5b611c8e915060203d602011611c94575b611c86818361367e565b81019061391a565b5f611bcd565b503d611c7c565b015190505f80611ab1565b601f198216935f516020615b475f395f51905f52845280842091845b868110611d075750836001959610611cef575b505050811b015f516020615b475f395f51905f5255611ad2565b01515f1960f88460031b161c191690555f8080611cd5565b91926020600181928685015181550194019201611cc2565b81811115611a97575f516020615b475f395f51905f528352611d7e907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510611d84575b601f82910160051c039101615363565b5f611a97565b859150611d6e565b634e487b7160e01b82526041600452602482fd5b015190505f80611a46565b5f516020615b075f395f51905f52835280832090601f198316845b818110611e0d57509583600195969710611df5575b505050811b015f516020615b075f395f51905f5255611a67565b01515f1960f88460031b161c191690555f8080611ddb565b9192602060018192868b015181550194019201611dc6565b81811115611a2d575f516020615b075f395f51905f528352611e83907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611d8457601f82910160051c039101615363565b5f611a2d565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611981565b5034610336578060031936011261033657602060ff5f516020615bc75f395f51905f5254166040519015158152f35b50346103365761016036600319011261033657611ef761358f565b906024356001600160a01b038116908190036109a457611f15613563565b92611f1e613579565b9260a43560c43560843560403660e31901126108215761012435966001600160401b0388116109b357366023890112156109b3578760040135926001600160401b03841161073757366024858b01011161073757610144356001600160401b03811161081d57611f929036906004016135cd565b9590935f516020615be75f395f51905f5254986001600160401b0360ff8b60401c16159a16801590816128c0575b60011490816128b6575b1590816128ad575b5061289e57612014908a60016001600160401b03195f516020615be75f395f51905f525416175f516020615be75f395f51905f525561286e575b6119d3615800565b61201c615800565b61202461388f565b61202c6138bc565b90612035615800565b61203d615800565b8051906001600160401b03821161285a5781908b6120685f516020615b075f395f51905f525461537e565b601f8111612809575b5050602090601f831160011461278d578c92612782575b50508160011b915f199060031b1c1916175f516020615b075f395f51905f52555b8051906001600160401b03821161276e5781906120d35f516020615b475f395f51905f525461537e565b601f81116126ff575b50602090601f8311600114612683578b92612678575b50508160011b915f199060031b1c1916175f516020615b475f395f51905f52555b875f516020615b675f395f51905f5255875f516020615c075f395f51905f525561213b615800565b612143615800565b421561266957811561265a578181111561264b57600a61216383836138db565b0483101561263c576040809a815161217b838261367e565b60178152602081017f726f757465722e73746f726167652e526f75746572563100000000000000000081526121ae613c60565b5f1991519020018a5260ff1960208b2016809e815f516020615ba75f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16122036152e6565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff19161717905583519061224d826135fd565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d01556122c1613859565b5089516122cd8161362c565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b90612312816135fd565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa9081156126325790612372918691611c6c5750613933565b806103e8026103e88104820361261e57601e8a0155806101f402906101f482040361260a57906123d291601f8a01556123ca8751986123b08a61362c565b60e4358a5260208a019461010435865260243692016136ba565b933691613996565b958051825170014551231950b75fc4402da1732fc9bebe19821091826125f9575b5050156125ea5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156125dd5752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b825481101561249b5782845260208085208201546001600160a01b03165f90815290869052869020805460ff19169055600101612463565b509195949094865b83518110156124e3576001906001600160a01b036124c18287613a0e565b5116828060a01b03165f5285602052865f208260ff19825416179055016124a3565b50925092938151916001600160401b0383116125c957600160401b83116125c95760209082548484558085106125ae575b500190865260208620865b8381106125915750505050602060019142600e820155015561253f575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615be75f395f51905f5254165f516020615be75f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161251f565b6125c390848a528580858c2001910390615363565b5f612514565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b61260392506159fc565b5f806123f3565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f806120f2565b5f516020615b475f395f51905f528c52818c209250601f1984168c5b8181106126e757509084600195949392106126cf575b505050811b015f516020615b475f395f51905f5255612113565b01515f1960f88460031b161c191690555f80806126b5565b9293602060018192878601518155019501930161269f565b828111156120dc575f516020615b475f395f51905f528c52612760907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e60208710612766575b50601f82910160051c039101615363565b5f6120dc565b91508e61274f565b634e487b7160e01b8a52604160045260248afd5b015190505f80612088565b5f516020615b075f395f51905f528d52818d209250601f1984168d5b8181106127f157509084600195949392106127d9575b505050811b015f516020615b075f395f51905f52556120a9565b01515f1960f88460031b161c191690555f80806127bf565b929360206001819287860151815501950193016127a9565b83811115612071575f516020615b075f395f51905f5261284b92528d6020812091601f860160051c91602087106128525750601f82910160051c039101615363565b8b5f612071565b91508f61274f565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615be75f395f51905f525416175f516020615be75f395f51905f525561200c565b63f92ee8a960e01b8952600489fd5b9050155f611fd2565b303b159150611fca565b8b9150611fc0565b50346103365780600319360112610336577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036129205760206040515f516020615b875f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126103365761294461358f565b906024356001600160401b0381116109a4576129649036906004016136f0565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612b21575b50612b12576129a6613c60565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612ada575b506129eb57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615b875f395f51905f528103612ac85750813b15612ab6575f516020615b875f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612a9c5780836020612a9095519101845af43d15612a94573d91612a748361369f565b92612a82604051948561367e565b83523d85602085013e615aa8565b5080f35b606091615aa8565b50505034612aa75780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612b0a575b81612af66020938361367e565b81010312612b065751945f6129d2565b5f80fd5b3d9150612ae9565b63703e46dd60e11b8252600482fd5b5f516020615b875f395f51905f52546001600160a01b0316141590505f612999565b5034610336578060031936011261033657612b5c613c60565b5f516020615bc75f395f51905f525460ff811615612bb45760ff19165f516020615bc75f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461033657602036600319011261033657612bdd61358f565b612be5613c60565b5f516020615ba75f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610336578060031936011261033657612c30613859565b506040612c54612c4f5f516020615ba75f395f51905f525442906155d7565b613871565b60208251918051835201516020820152f35b503461033657606036600319011261033657612c80613563565b612c88613c93565b612c96602435600435614130565b506001600160a01b0390811691908116612d1e5750335b5f516020615ba75f395f51905f5254600501546001600160a01b0316823b1561082157604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109a85761098f57602082604051908152f35b612cad565b50346103365780600319360112610336576020610a5861579f565b50346103365780600319360112610336576020805f516020615ba75f395f51905f52540154604051908152f35b5034610336578060031936011261033657602060015f516020615ba75f395f51905f52540154604051908152f35b50346103365780600319360112610336576020601e5f516020615ba75f395f51905f52540154604051908152f35b5034610336576060366003190112610336576001600160401b036004351161033657610100600435360360031901126103365760026024351015610336576044356001600160401b0381116109a457612e249036906004016135cd565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61322b5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ba75f395f51905f525490600182015415611416578154156131cf575b600382015460446004350135036131c05765ffffffffffff60048301541665ffffffffffff612ec3602460043501613846565b16106131b257612ed8600435600401836142d2565b92612eed60a4600435016004356004016147d4565b808096925060051b046020148515171561261e57612f0d8560051b61556f565b8695865b81881061307d5750613043965060051b902090612f3360043560040186614816565b612f4260043560040187614bf4565b90612f51602460043501613846565b93612f60606460043501613838565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152612fc560e78261367e565b5190209283600382015565ffffffffffff612fe4602460043501613846565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff613038602460043501613846565b16936024359161507d565b1561306e57807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b61309160a4600435016004356004016147d4565b89101561319e578860061b8101358a526019880160205260ff60408b20541660038110156107e75760010361318f576001916020916131548b8b8e868360061b860101926130de84614809565b156131705760061b85013590525060198c01855260408e20805460ff19166002179055601c8c01805461311090613be1565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661313f84614809565b1515926040519060061b8701358152a2614809565b908b60061b01358c52825360218b208186015201970196612f11565b60409260199160061b87013583520187522060ff198154169055613113565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b6131ec6131e0606460043501613838565b60043560040135614228565b1561321c5765ffffffffffff613206602460043501613846565b164211612e9057631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b503461033657602036600319011261033657613254613c60565b600435601e5f516020615ba75f395f51905f5254015580f35b50346103365761010036600319011261033657613288613563565b6064356001600160801b03811690818103610821578360a43560ff811681036109a4576132b3613c93565b6132c1602435600435614130565b6006015490936001600160a01b0390911691823b15610821576133088480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016137d6565b038183885af1613426575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af190811561341b5785916133fc575b50156133ed576001600160a01b03908116929081166133e7575033905b5f516020615ba75f395f51905f5254600501546001600160a01b0316833b156109b357604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109a85761098f57602082604051908152f35b90613378565b631e4e7d0960e21b8452600484fd5b613415915060203d60201161070c576106fe818361367e565b5f61335b565b6040513d87823e3d90fd5b816134309161367e565b61073b57825f613313565b34612b06576080366003190112612b0657613454613563565b61345c613579565b90613465613c93565b613473602435600435613cba565b506001600160a01b0390811691908116613500575033915b813b15612b0657604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af19182156134f5576020926134e5575b50604051908152f35b5f6134ef9161367e565b5f6134dc565b6040513d5f823e3d90fd5b9161348b565b34612b06576020366003190112612b065761351f613c60565b600435601f5f516020615ba75f395f51905f525401555f80f35b34612b06575f366003190112612b0657602090601c5f516020615ba75f395f51905f525401548152f35b604435906001600160a01b0382168203612b0657565b606435906001600160a01b0382168203612b0657565b600435906001600160a01b0382168203612b0657565b35906001600160a01b0382168203612b0657565b35906001600160801b0382168203612b0657565b9181601f84011215612b06578235916001600160401b038311612b06576020808501948460051b010111612b0657565b606081019081106001600160401b0382111761361857604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761361857604052565b61018081019081106001600160401b0382111761361857604052565b608081019081106001600160401b0382111761361857604052565b90601f801991011681019081106001600160401b0382111761361857604052565b6001600160401b03811161361857601f01601f191660200190565b9291926136c68261369f565b916136d4604051938461367e565b829481845281830111612b06578281602093845f960137010152565b9080601f83011215612b065781602061370b933591016136ba565b90565b90600382101561371b5752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106137705750505090565b82516001600160a01b0316845260209384019390920191600101613763565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606137cd604085015160a08386015260a0850190613753565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612b0657518015158103612b065790565b3560ff81168103612b065790565b3565ffffffffffff81168103612b065790565b604051906138668261362c565b5f6020838281520152565b9060405161387e8161362c565b602060018294805484520154910152565b6040519061389e60408361367e565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906138cb60408361367e565b60018252603160f81b6020830152565b919082039182116138e857565b634e487b7160e01b5f52601160045260245ffd5b8115613906570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612b06575160ff81168103612b065790565b60ff16604d81116138e857600a0a90565b818102929181159184041417156138e857565b9190826040910312612b065760405161396f8161362c565b6020808294803584520135910152565b6001600160401b0381116136185760051b60200190565b9291906139a28161397f565b936139b0604051958661367e565b602085838152019160051b8101928311612b0657905b8282106139d257505050565b602080916139df846135a5565b8152019101906139c6565b91908110156139fa5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139fa5760209160051b010190565b90604051613a2f8161362c565b91546001600160401b038116835260401c6001600160801b03166020830152565b919082018092116138e857565b356001600160a01b0381168103612b065790565b613a8a5f516020615ba75f395f51905f525442906155d7565b600301905f5b838110613aa05750505050600190565b613aae61108b8286856139ea565b6001600160a01b03165f9081526020849052604090205460ff1615613ad557600101613a90565b505050505f90565b60405190613aea826135fd565b5f6040838281528260208201520152565b90604051613b08816135fd565b60406002829480548452600181015460208501520154910152565b60405190613b3082613663565b5f606083604051613b408161362c565b83815283602082015281528260208201528160408201520152565b60405190613b6882613663565b815f81525f6020820152613b7a613b23565b60408201526060613b89613b23565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613bbf575050613bbd9250038361367e565b565b84546001600160a01b0316835260019485019487945060209093019201613ba8565b5f1981146138e85760010190565b6001600160a01b03168015613c4d575f516020615b275f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615b275f395f51905f52546001600160a01b03163303613c8057565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615bc75f395f51905f525416613cab57565b63d93c066560e01b5f5260045ffd5b9190915f516020615ba75f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561371b5760020361412157815f5260205260405f206040516103008101908082106001600160401b03831117612b06576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612b065760018060a01b0382165f52601a84016020528060405f2055601b84016140e68154613be1565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ba75f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561371b5760020361412157815f5260205260405f2060405160608101908082106001600160401b03831117612b0657605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612b065760018060a01b0382165f52601a84016020528060405f2055601b84016140e68154613be1565b435f19810193929084116138e85760ff1643811061427857505f925b83811015614254575b505f925050565b80408281036142665750600193505050565b15614273575f1901614244565b61424d565b61428290436138db565b92614244565b903590601e1981360301821215612b0657018035906001600160401b038211612b0657602001918160051b36038313612b0657565b903590605e1981360301821215612b06570190565b906080810160016142e38284614288565b9050116147c5576142f48183614288565b90501561479e5761430491614288565b156139fa5780614313916142bd565b9161431e8380614288565b9190928260051b93838504602014841517156138e8576143408596949561556f565b925f945f97601a60fe19853603019501965b888a1015614701578960051b85013586811215612b0657850161437481613a5d565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036143a68261555b565b161515806146ee575b6146dd575b6001600160a01b036143c584613a5d565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b0390614444906001600160a01b03614402856135a5565b1660248901526020840135604489015261441e60408501614be7565b151560648901526001600160a01b03614439606086016135a5565b1660848901526135b9565b1660a486015261445660a08201614be7565b151560c486015236819003601e190160c082013581811215612b06578201602081359101936001600160401b038211612b06576060820236038513612b0657819061010060e48a015252610144870193905f905b8082106146935750505060e082013590811215612b065701803560208201926001600160401b038211612b06578160051b908136038513612b065791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106145865750505050505050602093916001600160801b03848093039316905af19081156134f5575f91614554575b50816020916001938a015201990198614352565b90506020813d821161457e575b8161456e6020938361367e565b81010312612b0657516001614540565b3d9150614561565b919395979850919395601f19848203018752873582811215612b06578301602081013582526001600160a01b036145bf604083016135a5565b1660208301526060810135603e193683900301811215612b06578101602081013591906040016001600160401b038311612b06578236038113612b0657829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361462e608083016135b9565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612b06578360209361467060e086956101009560a060019a015201614be7565b151560c0830152601f80199101160101990197019401918a98979695939161450f565b90919460608060019288358152838060a01b036146b260208b016135a5565b1660208201526001600160801b036146cc60408b016135b9565b1660408201520196019201906144aa565b90506146e88161555b565b906143b4565b506146fb60a08401614809565b156143af565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a101358061476f575b6040519160208301938452604083015260608201526060815261476960808261367e565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a1614745565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612b0657018035906001600160401b038211612b0657602001918160061b36038313612b0657565b358015158103612b065790565b60c0820160016148268285614288565b905011614ba6576148378184614288565b90501561479e576148489083614288565b156139fa57803590607e1981360301821215612b065701916060830190602061487083613846565b91019065ffffffffffff8061488484613846565b1691161015614b975761489682613846565b65ffffffffffff80600286015460201c16911610614b88576148dc65ffffffffffff6148d56148cf826148c887613846565b1687615594565b93613846565b1684615594565b1115614b79576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446149228361491a89896142bd565b01358b613a50565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156134f5575f91614b5a575b5015614b4b575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156134f5575f95614b13575b50906149a7916142bd565b916149b182613846565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612b06578101602081359101936001600160401b038211612b06578160061b36038513612b065760606044890152819052869360c485019392915f5b818110614adb57505050836020959365ffffffffffff829484895f9601356064860152614a4a604060018060a01b0392016135a5565b16608485015216602483015203925af19182156134f5575f92614aa5575b50614a7290613846565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b1660608201526046815261476960668261367e565b9091506020813d602011614ad3575b81614ac16020938361367e565b81010312612b06575190614a72614a68565b3d9150614ab4565b919550919293604080600192838060a01b03614af68a6135a5565b168152602089013560208201520196019101918895949392614a14565b919094506020823d602011614b43575b81614b306020938361367e565b81010312612b06579051936149a761499c565b3d9150614b23565b6367b9145160e01b5f5260045ffd5b614b73915060203d60201161070c576106fe818361367e565b5f61494f565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612b0657018035906001600160401b038211612b0657602001918136038313612b0657565b35908115158203612b0657565b9060e081016001614c058284614288565b90501161506e57614c168183614288565b90501561479e57614c2691614288565b156139fa5780359060be1981360301821215612b06570160808101614c4b8183614288565b90501561505f5765ffffffffffff600284015460201c1691614c6d83426138db565b614c7c601686015480926138fc565b9360a083013594600181018091116138e857850361505057614ca185614ca793613944565b90613a50565b93614cb66017820154866138db565b421061504157614cc5906155bc565b916005830193428554101561503257614cdd83614809565b92602081019060608101936123ca614d19614cf88785614bb5565b9190614d048587614288565b949091614d11368a613957565b9436916136ba565b97614f79575b50505f989798976003600489019801985b8854811015614d67575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614d30565b5090919293949596985f5b8851811015614db3576001906001600160a01b03614d90828c613a0e565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614d72565b50929598909396919497508151916001600160401b03831161361857600160401b8311613618576020908254848455808510614f5e575b5001905f5260205f205f5b838110614f415750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612b06576040519260a08401908482106001600160401b0383111761361857614e6991604052614e6084614be7565b85523690613957565b9460208401958652356001600160401b038111612b0657614e8d90369084016136f0565b604084015235906001600160401b038211612b06570136601f82011215612b0657614ebf903690602081359101613996565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110614f1f57505050815203808252614769906020018261367e565b82516001600160a01b0316855286955060209485019490920191600101614f02565b82516001600160a01b031681830155602090920191600101614df5565b614f7390845f528580855f2001910390615363565b5f614dea565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182615021575b5050156150125751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561500557526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614d1f565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b61502b92506159fc565b5f80614f9f565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c1661509c4284615594565b6150b46150ae60168601548093613944565b83613a50565b9182841080806152d0575b1561529e57508310615290576150d59083613a50565b10615281576150e5905b826155d7565b94601960f81b5f523060601b60025260165260365f2093600281101561371b57806151765750506001810361516757156139fa576151268161512d92614bb5565b36916136ba565b9160608351036151585782602061370b940151606060408301519201519260018154910154906155f3565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146151895750505050505f90565b6151ae90600860048796970154910154906001600160801b038260801c921690615530565b925f9260035f9201915b86811015615276576151de61059e6151d86151268460051b860186614bb5565b866159c2565b6001600160a01b0381165f9081526020859052604090205460ff16615209575b506001905b016151b8565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c1561524e5750600190615203565b94600161525c92965d613be1565b9385851461526a575f6151fe565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116152c1576150e5926152b9575b506150df565b90505f6152b3565b6347860b9760e01b5f5260045ffd5b506152df601887015485613a50565b42106150bf565b6152ee613add565b5063ffffffff431161534b5765ffffffffffff421161533357604051615313816135fd565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061537157505050565b5f82820155600101615365565b90600182811c921680156153ac575b602083101461539857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161538d565b604051905f825f516020615b075f395f51905f5254916153d58361537e565b808352926001811690811561546457506001146153f9575b613bbd9250038361367e565b505f516020615b075f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310615448575050906020613bbd928201016153ed565b6020919350806001915483858901015201910190918492615430565b60209250613bbd94915060ff191682840152151560051b8201016153ed565b604051905f825f516020615b475f395f51905f5254916154a28361537e565b808352926001811690811561546457506001146154c557613bbd9250038361367e565b505f516020615b475f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310615514575050906020613bbd928201016153ed565b60209193508060019154838589010152019101909184926154fc565b6001600160801b0380921602911661554881836138fc565b91811561390657061561370b5760010190565b356001600160801b0381168103612b065790565b6040519190601f01601f191682016001600160401b03811183821017612b0657604052565b60166155b361370b9365ffffffffffff600285015460201c16906138db565b910154906138fc565b6155c64282615962565b156155d15760090190565b600f0190565b906155e29082615962565b156155ed57600f0190565b60090190565b929391949061560285876159fc565b156157955782156157955770014551231950b75fc4402da1732fc9bebe19831015615795576001169061010e6156378161556f565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156152765784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6157a7615a1f565b6157af615a76565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261476960c08261367e565b60ff5f516020615be75f395f51905f525460401c161561581c57565b631afcd79f60e31b5f5260045ffd5b615833613b23565b5060028101546005820154604051929091615873916004916001600160a01b031661585d86613663565b61586682613871565b8652602086015201613b8e565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116158f7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156134f5575f516001600160a01b038116156158ed57905f905f90565b505f906001905f90565b5050505f9160039190565b600481101561371b5780615914575050565b6001810361592b5763f645eedf60e01b5f5260045ffd5b60028103615946575063fce698f760e01b5f5260045260245ffd5b6003146159505750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146159b3578181841093119182159111159181906159ac575b1561599d578261599757505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615988565b63f26224af60e01b5f5260045ffd5b81519190604183036159f2576159eb9250602082015190606060408401519301515f1a90615880565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b615a276153b6565b8051908115615a37576020012090565b50505f516020615b675f395f51905f52548015615a515790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b615a7e615483565b8051908115615a8e576020012090565b50505f516020615c075f395f51905f52548015615a515790565b90615acc5750805115615abd57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615afd575b615add575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615ad556fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1553:48775:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;7983:34:30;7979:146;;-1:-1:-1;1553:48775:165;;;;;;;;1052:13:60;1553:48775:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;8085:29:30;;1553:48775:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1553:48775:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022613c93565b5f516020615ba75f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714613539575080630b9737ce146135065780630c18d2771461343b5780630d91bf2a1461326d57806311bec80d1461323a5780631622441d14612dc7578063188509e914612d9957806328e24b3d14612d6b5780632ae9c60014612d3e5780633644e51514612d235780633683c4d214612c665780633bd109fa14612c175780633d43b41814612bc35780633f4ba83a14612b435780634f1ef2861461292f57806352d1902d146128c857806353f7fd4814611edc5780635c975abb14611ead5780636c2eb3501461194a578063715018a6146118e157806371a8cf2d146118b35780637ecebe001461185b57806382bdeaad146117435780638456cb59146116d057806384b0196e146115a857806384d22a4f1461154a57806385dd663d146114cc57806388f50cf0146114935780638b1edf1e146114345780638c4ace6a146112c55780638da5cb5b146112905780638f381dbe1461124a5780639067088e1461120157806396a2ddfa146111d35780639eb939a81461117c578063a5d53a44146110fc578063ad3cb1cc146110b3578063baaf020114610fb6578063c13911e814610f72578063c2eb812f14610bce578063ca1e781914610b7e578063cacf66ab14610b46578063d456fd5114610b10578063e3a6684f14610ad1578063e6fabc0914610a98578063ed612f8c14610a60578063edc8722514610a0b578063ee32004f14610825578063f0fd702a146103cd578063f1ef31ec1461039f578063f2fde38b14610372578063f4f20ac0146103395763facd743b0361000f5734610336576020366003190112610336576102f861358f565b60036103135f516020615ba75f395f51905f525442906155d7565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346103365780600319360112610336575f516020615ba75f395f51905f5254600701546040516001600160a01b039091168152602090f35b50346103365760203660031901126103365761039c61038f61358f565b610397613c60565b613bef565b80f35b50346103365780600319360112610336576020601f5f516020615ba75f395f51905f52540154604051908152f35b503461033657610140366003190112610336576103e861358f565b602435906044356001600160401b0381116108215761040b9036906004016135cd565b90916064359060843560ff8116810361081d5760e4359060ff8216820361081957610434613c93565b87491561080a575f516020615ba75f395f51905f5254946001860154156107fb576019860196888a528760205260ff60408b20541660038110156107e7576107d857895b80496107ca578083036107b35750895b82811061076c57508542116107585760405160208101906001600160fb1b038411610754576104d360208261059e956105a79760051b8091873781010301601f19810183528261367e565b5190209260018060a01b03861693848c527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260408c208054906001820190556040519060208201927f375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b809784528760408401528d6060840152608083015260a08201528860c082015260c0815261056c60e08261367e565b51902061057761579f565b906040519161190160f01b83526002830152602282015260c43591604260a4359220615880565b90929192615902565b6001600160a01b031681810361073f57505086906105dc60018060a01b0360068701541695601f601e82015491015490613a50565b93853b1561073b5760405163d505accf60e01b81526001600160a01b038516600482015230602482015260448101869052606481019190915260ff9190911660848201526101043560a48201526101243560c4820152818160e48183895af161071e575b506040516323b872dd60e01b81526001600160a01b039092166004830152306024830152604482019290925291602091839190829081606481015b03925af19081156107135784916106e4575b50156106d55781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b631e4e7d0960e21b8352600483fd5b610706915060203d60201161070c575b6106fe818361367e565b810190613820565b5f61068d565b503d6106f4565b6040513d86823e3d90fd5b8161072b9194939461367e565b6107375790855f610640565b8580fd5b8280fd5b637ba5ffb560e01b8952600452602452604487fd5b8b80fd5b632f4aa44f60e21b8a52600486905260248afd5b80498061077a8386866139ea565b35146107878386866139ea565b359015610798575050600101610488565b606493508c926306f2f0e760e21b8452600452602452604452fd5b635cfa404d60e11b8b52600483905260245260448afd5b6107d390613be1565b610478565b6304c51a3360e31b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b63580683f360e01b8952600489fd5b637bb2fa2f60e11b8852600488fd5b8780fd5b8680fd5b8380fd5b50346103365761012036600319011261033657610840613563565b610848613579565b6084356001600160801b038116908181036109b3578460c43560ff811681036109a457610873613c93565b610881602435600435613cba565b6006015490936001600160a01b0390911691823b15610821576108c98480926040518093819263d505accf60e01b8352610104359060e4359060a4358a3033600489016137d6565b038183885af16109f6575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af19081156109eb5786916109cc575b50156109bd576001600160a01b03908116939081166109b7575033915b833b156109b357604051635fd142bb60e11b81526001600160a01b03938416600482015292166024830152604482018490526064820152828160848183865af180156109a85761098f575b602082604051908152f35b61099a83809261367e565b6109a45781610984565b5080fd5b6040513d85823e3d90fd5b8480fd5b91610939565b631e4e7d0960e21b8552600485fd5b6109e5915060203d60201161070c576106fe818361367e565b5f61091c565b6040513d88823e3d90fd5b81610a009161367e565b61073b57825f6108d4565b50346103365780600319360112610336576020610a585f516020615ba75f395f51905f525460086004610a3e42846155d7565b0154910154906001600160801b038260801c921690615530565b604051908152f35b503461033657806003193601126103365760206004610a8e5f516020615ba75f395f51905f525442906155d7565b0154604051908152f35b50346103365780600319360112610336575f516020615ba75f395f51905f5254600501546040516001600160a01b039091168152602090f35b5034610336578060031936011261033657604060085f516020615ba75f395f51905f525401548151906001600160801b038116825260801c6020820152f35b5034610336578060031936011261033657602065ffffffffffff60045f516020615ba75f395f51905f5254015416604051908152f35b5034610336578060031936011261033657602065ffffffffffff60025f516020615ba75f395f51905f52540154821c16604051908152f35b5034610336578060031936011261033657610bca610bb66004610bb05f516020615ba75f395f51905f525442906155d7565b01613b8e565b604051918291602083526020830190613753565b0390f35b5034610336578060031936011261033657604051610beb81613647565b610bf3613add565b8152604051610c018161362c565b5f8152602081015f90526020820152610c18613add565b6040820152610c25613b5b565b6060820152604051610c368161362c565b5f80825260208201526080820152610c4c613add565b60a08201528160c08201528160e082015281610100820152816101208201528161014082015261016001525f516020615ba75f395f51905f5254610c8e613b5b565b50610c9b6009820161582b565b90610ca8600f820161582b565b60088201549260405193610cbb85613663565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154601d82015461ffff16601e830154601f8401549160208501549360405196610d0b88613647565b604051610d17816135fd565b60018801548152600288015463ffffffff8116602083015260201c65ffffffffffff166040820152885260405198610d4e8a61362c565b60038801548a52600488015465ffffffffffff1660208b015260208901998a5260405190610d7b826135fd565b60058901546001600160a01b03908116835260068a01548116602084015260078a0154166040808401919091528a0191825260608a01908152610dc060158a01613a22565b9860808b01998a52601601610dd490613afb565b9160a08b0192835260c08b0193845260e08b019485526101008b019586526101208b019687526101408b019788526101608b019889526040519b8c9b60208d52518c815190602001528c602082015163ffffffff1690604001526040015165ffffffffffff1660608d015251805160808d01526020015165ffffffffffff1660a08c015251600160a01b6001900381511660c08c0152600160a01b6001900360208201511660e08c0152600160a01b600190039060400151166101008b0152516101208a01610280905280516001600160801b03166102a08b015260208101516001600160801b03166102c08b015260408101516102e08b01608090526103208b01610edf9161378f565b90606001519061029f198b8203016103008c0152610efc9161378f565b975180516001600160401b03166101408b0152602001516001600160801b03166101608a01525180516101808a015260208101516101a08a0152604001516101c0890152516101e0880152516102008701525161ffff166102208601525161024085015251610260840152516102808301520390f35b50346103365760203660031901126103365760ff604060209260195f516020615ba75f395f51905f52540160043582528452205416610fb4604051809261370e565bf35b5034610336576020366003190112610336576004356001600160401b0381116109a457610fe79036906004016135cd565b905f516020615ba75f395f51905f5254906110018361397f565b9161100f604051938461367e565b83835261101b8461397f565b602084019490601f1901368637601a869201915b81811061107a57868587604051928392602084019060208552518091526040840192915b818110611061575050500390f35b8251845285945060209384019390920191600101611053565b8061109061108b60019385886139ea565b613a5d565b828060a01b03165f528360205260405f20546110ac8288613a0e565b520161102f565b503461033657806003193601126103365750610bca6040516110d660408261367e565b60058152640352e302e360dc1b602082015260405191829160208352602083019061372f565b50346103365780600319360112610336575f516020615ba75f395f51905f52546001600160a01b03906002906111339042906155d7565b0154166040519182915f19813b0164ffffffffff16916021830191601f8501903c808252019060408201918260405260208352611177603f1992606083019061372f565b030190f35b5034610336578060031936011261033657611195613add565b5060606111b260165f516020615ba75f395f51905f525401613afb565b610fb460405180926040809180518452602081015160208501520151910152565b50346103365780600319360112610336576020601b5f516020615ba75f395f51905f52540154604051908152f35b50346103365760203660031901126103365761121b61358f565b601a5f516020615ba75f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b503461033657602036600319011261033657600435906001600160401b03821161033657602061128661128036600486016135cd565b90613a71565b6040519015158152f35b50346103365780600319360112610336575f516020615b275f395f51905f52546040516001600160a01b039091168152602090f35b50346103365760a03660031901126103365760043560443560ff8116810361073b576112ef613c93565b824915611425575f516020615ba75f395f51905f52546001810154156114165760198101918385528260205260ff6040862054166003811015611402576113f3576006820154601e9092015485926001600160a01b031691823b156108215760405163d505accf60e01b815233600482015230602480830191909152604482018490523560648083019190915260ff92909216608480830191909152913560a4820152903560c48201528390818160e48183885af16113de575b50506040516323b872dd60e01b815233600482015230602482015260448101919091529160209183918290816064810161067b565b816113e89161367e565b61073b57825f6113a9565b6304c51a3360e31b8552600485fd5b634e487b7160e01b86526021600452602486fd5b63580683f360e01b8452600484fd5b637bb2fa2f60e11b8352600483fd5b50346103365780600319360112610336575f516020615ba75f395f51905f525460018101908154611484576002015463ffffffff1640908115611475575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346103365780600319360112610336575f516020615ba75f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346103365780600319360112610336576114e5613c60565b60205f516020615ba75f395f51905f5254018054906001820180921161153657817f60e5a0cd4e467d80fbdaaf85873a02b09330ec141877522528ce5ae2bd8825ec9260209255604051908152a180f35b634e487b7160e01b83526011600452602483fd5b5034610336578060031936011261033657611563613859565b50604061158060155f516020615ba75f395f51905f525401613a22565b610fb4825180926001600160801b03602080926001600160401b038151168552015116910152565b50346103365780600319360112610336575f516020615b675f395f51905f525415806116ba575b1561167d57611621906115e06153b6565b906115e9615483565b90602061162f604051936115fd838661367e565b8385525f368137604051968796600f60f81b885260e08589015260e088019061372f565b90868203604088015261372f565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b82811061166657505050500390f35b835185528695509381019392810192600101611657565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f516020615c075f395f51905f5254156115cf565b50346103365780600319360112610336576116e9613c60565b6116f1613c93565b600160ff195f516020615bc75f395f51905f525416175f516020615bc75f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b5034610336576020366003190112610336576004356001600160401b0381116109a4576117749036906004016135cd565b905f516020615ba75f395f51905f52549061178e8361397f565b9161179c604051938461367e565b8383526117a88461397f565b602084019490601f19013686376019869201915b81811061181157868587604051928392602084019060208552518091526040840192915b8181106117ee575050500390f35b9193509160208082611803600194885161370e565b0194019101918493926117e0565b61181c8183866139ea565b3587528260205260ff6040882054166118358287613a0e565b600382101561184757526001016117bc565b634e487b7160e01b89526021600452602489fd5b5034610336576020366003190112610336576020906040906001600160a01b0361188361358f565b1681527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0083522054604051908152f35b5034610336578060031936011261033657602060035f516020615ba75f395f51905f52540154604051908152f35b50346103365780600319360112610336576118fa613c60565b5f516020615b275f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610336578060031936011261033657611963613c60565b5f516020615be75f395f51905f525460ff8160401c16908115611e98575b50611e89575f516020615be75f395f51905f52805468ffffffffffffffffff1916680100000000000000051790555f516020615b275f395f51905f52546119db906001600160a01b03166119d3615800565b610397615800565b6119e361388f565b906119ec6138bc565b906119f5615800565b6119fd615800565b82516001600160401b038111611d8c57611a245f516020615b075f395f51905f525461537e565b601f8111611e25575b506020601f8211600114611dab57829394829392611da0575b50508160011b915f199060031b1c1916175f516020615b075f395f51905f52555b81516001600160401b038111611d8c57611a8e5f516020615b475f395f51905f525461537e565b601f8111611d1f575b50602092601f8211600114611ca657928293829392611c9b575b50508160011b915f199060031b1c1916175f516020615b475f395f51905f52555b805f516020615b675f395f51905f5255805f516020615c075f395f51905f52555f516020615ba75f395f51905f5254611b096152e6565b80516001830155600282019063ffffffff60208201511669ffffffffffff000000006040845493015160201b169169ffffffffffffffffffff191617179055816020604051611b578161362c565b82815201528160038201556004810165ffffffffffff19815416905561ffff6004611b8242846155d7565b01541661ffff601d8301911661ffff198254161790556004602060018060a01b036006840154166040519283809263313ce56760e01b82525afa80156109a857611bd3918491611c6c575b50613933565b806103e8026103e881048203611c5857601e830155806101f402906101f48204036115365781602091601f6001940155015560ff60401b195f516020615be75f395f51905f5254165f516020615be75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160058152a180f35b634e487b7160e01b84526011600452602484fd5b611c8e915060203d602011611c94575b611c86818361367e565b81019061391a565b5f611bcd565b503d611c7c565b015190505f80611ab1565b601f198216935f516020615b475f395f51905f52845280842091845b868110611d075750836001959610611cef575b505050811b015f516020615b475f395f51905f5255611ad2565b01515f1960f88460031b161c191690555f8080611cd5565b91926020600181928685015181550194019201611cc2565b81811115611a97575f516020615b475f395f51905f528352611d7e907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f840160051c9060208510611d84575b601f82910160051c039101615363565b5f611a97565b859150611d6e565b634e487b7160e01b82526041600452602482fd5b015190505f80611a46565b5f516020615b075f395f51905f52835280832090601f198316845b818110611e0d57509583600195969710611df5575b505050811b015f516020615b075f395f51905f5255611a67565b01515f1960f88460031b161c191690555f8080611ddb565b9192602060018192868b015181550194019201611dc6565b81811115611a2d575f516020615b075f395f51905f528352611e83907f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d90601f840160051c9060208510611d8457601f82910160051c039101615363565b5f611a2d565b63f92ee8a960e01b8152600490fd5b600591506001600160401b031610155f611981565b5034610336578060031936011261033657602060ff5f516020615bc75f395f51905f5254166040519015158152f35b50346103365761016036600319011261033657611ef761358f565b906024356001600160a01b038116908190036109a457611f15613563565b92611f1e613579565b9260a43560c43560843560403660e31901126108215761012435966001600160401b0388116109b357366023890112156109b3578760040135926001600160401b03841161073757366024858b01011161073757610144356001600160401b03811161081d57611f929036906004016135cd565b9590935f516020615be75f395f51905f5254986001600160401b0360ff8b60401c16159a16801590816128c0575b60011490816128b6575b1590816128ad575b5061289e57612014908a60016001600160401b03195f516020615be75f395f51905f525416175f516020615be75f395f51905f525561286e575b6119d3615800565b61201c615800565b61202461388f565b61202c6138bc565b90612035615800565b61203d615800565b8051906001600160401b03821161285a5781908b6120685f516020615b075f395f51905f525461537e565b601f8111612809575b5050602090601f831160011461278d578c92612782575b50508160011b915f199060031b1c1916175f516020615b075f395f51905f52555b8051906001600160401b03821161276e5781906120d35f516020615b475f395f51905f525461537e565b601f81116126ff575b50602090601f8311600114612683578b92612678575b50508160011b915f199060031b1c1916175f516020615b475f395f51905f52555b875f516020615b675f395f51905f5255875f516020615c075f395f51905f525561213b615800565b612143615800565b421561266957811561265a578181111561264b57600a61216383836138db565b0483101561263c576040809a815161217b838261367e565b60178152602081017f726f757465722e73746f726167652e526f75746572563100000000000000000081526121ae613c60565b5f1991519020018a5260ff1960208b2016809e815f516020615ba75f395f51905f5255835182815260207f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16122036152e6565b805160018401556002830190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff19161717905583519061224d826135fd565b8382526001600160a01b0390811660208301819052988116949091018490526005919091018054919092166001600160a01b03199182161790915560068e01805482168717905560078e018054909116909117905570030000000000000000000000000000000260088d01556122c1613859565b5089516122cd8161362c565b639502f90081526509184e72a00060209091015260158c0180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b90612312816135fd565b83815260208101859052015260168c015560178b015560188a0155601d8901805461ffff191661ffff8616179055865163313ce56760e01b815290819081905a92600491602094fa9081156126325790612372918691611c6c5750613933565b806103e8026103e88104820361261e57601e8a0155806101f402906101f482040361260a57906123d291601f8a01556123ca8751986123b08a61362c565b60e4358a5260208a019461010435865260243692016136ba565b933691613996565b958051825170014551231950b75fc4402da1732fc9bebe19821091826125f9575b5050156125ea5751600988015551600a870155805180851b6bfe61000180600a3d393df3000161fffe8211830152600b81016015830184f09182156125dd5752600b860180546001600160a01b0319166001600160a01b039092169190911790559092600c85019190600d860190825b825481101561249b5782845260208085208201546001600160a01b03165f90815290869052869020805460ff19169055600101612463565b509195949094865b83518110156124e3576001906001600160a01b036124c18287613a0e565b5116828060a01b03165f5285602052865f208260ff19825416179055016124a3565b50925092938151916001600160401b0383116125c957600160401b83116125c95760209082548484558085106125ae575b500190865260208620865b8381106125915750505050602060019142600e820155015561253f575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020615be75f395f51905f5254165f516020615be75f395f51905f52555160018152a180f35b82516001600160a01b03168183015560209092019160010161251f565b6125c390848a528580858c2001910390615363565b5f612514565b634e487b7160e01b87526041600452602487fd5b633011642584526004601cfd5b63375f0aab60e11b8452600484fd5b61260392506159fc565b5f806123f3565b634e487b7160e01b85526011600452602485fd5b634e487b7160e01b86526011600452602486fd5b87513d87823e3d90fd5b63145e348f60e01b8852600488fd5b6353b2bbed60e01b8852600488fd5b63f7ba6bdb60e01b8852600488fd5b63b7d0949760e01b8852600488fd5b015190505f806120f2565b5f516020615b475f395f51905f528c52818c209250601f1984168c5b8181106126e757509084600195949392106126cf575b505050811b015f516020615b475f395f51905f5255612113565b01515f1960f88460031b161c191690555f80806126b5565b9293602060018192878601518155019501930161269f565b828111156120dc575f516020615b475f395f51905f528c52612760907f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7590601f850160051c908e60208710612766575b50601f82910160051c039101615363565b5f6120dc565b91508e61274f565b634e487b7160e01b8a52604160045260248afd5b015190505f80612088565b5f516020615b075f395f51905f528d52818d209250601f1984168d5b8181106127f157509084600195949392106127d9575b505050811b015f516020615b075f395f51905f52556120a9565b01515f1960f88460031b161c191690555f80806127bf565b929360206001819287860151815501950193016127a9565b83811115612071575f516020615b075f395f51905f5261284b92528d6020812091601f860160051c91602087106128525750601f82910160051c039101615363565b8b5f612071565b91508f61274f565b634e487b7160e01b8b52604160045260248bfd5b600160401b60ff60401b195f516020615be75f395f51905f525416175f516020615be75f395f51905f525561200c565b63f92ee8a960e01b8952600489fd5b9050155f611fd2565b303b159150611fca565b8b9150611fc0565b50346103365780600319360112610336577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036129205760206040515f516020615b875f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126103365761294461358f565b906024356001600160401b0381116109a4576129649036906004016136f0565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612b21575b50612b12576129a6613c60565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612ada575b506129eb57634c9c8ce360e01b84526004839052602484fd5b9091845f516020615b875f395f51905f528103612ac85750813b15612ab6575f516020615b875f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612a9c5780836020612a9095519101845af43d15612a94573d91612a748361369f565b92612a82604051948561367e565b83523d85602085013e615aa8565b5080f35b606091615aa8565b50505034612aa75780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612b0a575b81612af66020938361367e565b81010312612b065751945f6129d2565b5f80fd5b3d9150612ae9565b63703e46dd60e11b8252600482fd5b5f516020615b875f395f51905f52546001600160a01b0316141590505f612999565b5034610336578060031936011261033657612b5c613c60565b5f516020615bc75f395f51905f525460ff811615612bb45760ff19165f516020615bc75f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461033657602036600319011261033657612bdd61358f565b612be5613c60565b5f516020615ba75f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b5034610336578060031936011261033657612c30613859565b506040612c54612c4f5f516020615ba75f395f51905f525442906155d7565b613871565b60208251918051835201516020820152f35b503461033657606036600319011261033657612c80613563565b612c88613c93565b612c96602435600435614130565b506001600160a01b0390811691908116612d1e5750335b5f516020615ba75f395f51905f5254600501546001600160a01b0316823b1561082157604051635fd142bb60e11b81526001600160a01b03909216600483015260248201526001604482015260648101839052828160848183865af180156109a85761098f57602082604051908152f35b612cad565b50346103365780600319360112610336576020610a5861579f565b50346103365780600319360112610336576020805f516020615ba75f395f51905f52540154604051908152f35b5034610336578060031936011261033657602060015f516020615ba75f395f51905f52540154604051908152f35b50346103365780600319360112610336576020601e5f516020615ba75f395f51905f52540154604051908152f35b5034610336576060366003190112610336576001600160401b036004351161033657610100600435360360031901126103365760026024351015610336576044356001600160401b0381116109a457612e249036906004016135cd565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c61322b5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f516020615ba75f395f51905f525490600182015415611416578154156131cf575b600382015460446004350135036131c05765ffffffffffff60048301541665ffffffffffff612ec3602460043501613846565b16106131b257612ed8600435600401836142d2565b92612eed60a4600435016004356004016147d4565b808096925060051b046020148515171561261e57612f0d8560051b61556f565b8695865b81881061307d5750613043965060051b902090612f3360043560040186614816565b612f4260043560040187614bf4565b90612f51602460043501613846565b93612f60606460043501613838565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152612fc560e78261367e565b5190209283600382015565ffffffffffff612fe4602460043501613846565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff613038602460043501613846565b16936024359161507d565b1561306e57807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b61309160a4600435016004356004016147d4565b89101561319e578860061b8101358a526019880160205260ff60408b20541660038110156107e75760010361318f576001916020916131548b8b8e868360061b860101926130de84614809565b156131705760061b85013590525060198c01855260408e20805460ff19166002179055601c8c01805461311090613be1565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c98661313f84614809565b1515926040519060061b8701358152a2614809565b908b60061b01358c52825360218b208186015201970196612f11565b60409260199160061b87013583520187522060ff198154169055613113565b636e83084760e11b8a5260048afd5b634e487b7160e01b8a52603260045260248afd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b6131ec6131e0606460043501613838565b60043560040135614228565b1561321c5765ffffffffffff613206602460043501613846565b164211612e9057631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b503461033657602036600319011261033657613254613c60565b600435601e5f516020615ba75f395f51905f5254015580f35b50346103365761010036600319011261033657613288613563565b6064356001600160801b03811690818103610821578360a43560ff811681036109a4576132b3613c93565b6132c1602435600435614130565b6006015490936001600160a01b0390911691823b15610821576133088480926040518093819263d505accf60e01b835260e4359060c435906084358a3033600489016137d6565b038183885af1613426575b50506040516323b872dd60e01b81523360048201523060248201526001600160801b039190911660448201529160209183916064918391905af190811561341b5785916133fc575b50156133ed576001600160a01b03908116929081166133e7575033905b5f516020615ba75f395f51905f5254600501546001600160a01b0316833b156109b357604051635fd142bb60e11b81526001600160a01b0390931660048401526024830152600160448301526064820152828160848183865af180156109a85761098f57602082604051908152f35b90613378565b631e4e7d0960e21b8452600484fd5b613415915060203d60201161070c576106fe818361367e565b5f61335b565b6040513d87823e3d90fd5b816134309161367e565b61073b57825f613313565b34612b06576080366003190112612b0657613454613563565b61345c613579565b90613465613c93565b613473602435600435613cba565b506001600160a01b0390811691908116613500575033915b813b15612b0657604051635fd142bb60e11b81526001600160a01b039384166004820152921660248301525f60448301819052606483018190528260848183855af19182156134f5576020926134e5575b50604051908152f35b5f6134ef9161367e565b5f6134dc565b6040513d5f823e3d90fd5b9161348b565b34612b06576020366003190112612b065761351f613c60565b600435601f5f516020615ba75f395f51905f525401555f80f35b34612b06575f366003190112612b0657602090601c5f516020615ba75f395f51905f525401548152f35b604435906001600160a01b0382168203612b0657565b606435906001600160a01b0382168203612b0657565b600435906001600160a01b0382168203612b0657565b35906001600160a01b0382168203612b0657565b35906001600160801b0382168203612b0657565b9181601f84011215612b06578235916001600160401b038311612b06576020808501948460051b010111612b0657565b606081019081106001600160401b0382111761361857604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761361857604052565b61018081019081106001600160401b0382111761361857604052565b608081019081106001600160401b0382111761361857604052565b90601f801991011681019081106001600160401b0382111761361857604052565b6001600160401b03811161361857601f01601f191660200190565b9291926136c68261369f565b916136d4604051938461367e565b829481845281830111612b06578281602093845f960137010152565b9080601f83011215612b065781602061370b933591016136ba565b90565b90600382101561371b5752565b634e487b7160e01b5f52602160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106137705750505090565b82516001600160a01b0316845260209384019390920191600101613763565b9060208251805183520151602082015260018060a01b036020830151166040820152608060606137cd604085015160a08386015260a0850190613753565b93015191015290565b936001600160801b0360c096929998979460ff9460e088019b60018060a01b0316885260018060a01b03166020880152166040860152606085015216608083015260a08201520152565b90816020910312612b0657518015158103612b065790565b3560ff81168103612b065790565b3565ffffffffffff81168103612b065790565b604051906138668261362c565b5f6020838281520152565b9060405161387e8161362c565b602060018294805484520154910152565b6040519061389e60408361367e565b600f82526e2b30b9309722aa24102937baba32b960891b6020830152565b604051906138cb60408361367e565b60018252603160f81b6020830152565b919082039182116138e857565b634e487b7160e01b5f52601160045260245ffd5b8115613906570490565b634e487b7160e01b5f52601260045260245ffd5b90816020910312612b06575160ff81168103612b065790565b60ff16604d81116138e857600a0a90565b818102929181159184041417156138e857565b9190826040910312612b065760405161396f8161362c565b6020808294803584520135910152565b6001600160401b0381116136185760051b60200190565b9291906139a28161397f565b936139b0604051958661367e565b602085838152019160051b8101928311612b0657905b8282106139d257505050565b602080916139df846135a5565b8152019101906139c6565b91908110156139fa5760051b0190565b634e487b7160e01b5f52603260045260245ffd5b80518210156139fa5760209160051b010190565b90604051613a2f8161362c565b91546001600160401b038116835260401c6001600160801b03166020830152565b919082018092116138e857565b356001600160a01b0381168103612b065790565b613a8a5f516020615ba75f395f51905f525442906155d7565b600301905f5b838110613aa05750505050600190565b613aae61108b8286856139ea565b6001600160a01b03165f9081526020849052604090205460ff1615613ad557600101613a90565b505050505f90565b60405190613aea826135fd565b5f6040838281528260208201520152565b90604051613b08816135fd565b60406002829480548452600181015460208501520154910152565b60405190613b3082613663565b5f606083604051613b408161362c565b83815283602082015281528260208201528160408201520152565b60405190613b6882613663565b815f81525f6020820152613b7a613b23565b60408201526060613b89613b23565b910152565b90604051918281549182825260208201905f5260205f20925f5b818110613bbf575050613bbd9250038361367e565b565b84546001600160a01b0316835260019485019487945060209093019201613ba8565b5f1981146138e85760010190565b6001600160a01b03168015613c4d575f516020615b275f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f516020615b275f395f51905f52546001600160a01b03163303613c8057565b63118cdaa760e01b5f523360045260245ffd5b60ff5f516020615bc75f395f51905f525416613cab57565b63d93c066560e01b5f5260045ffd5b9190915f516020615ba75f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561371b5760020361412157815f5260205260405f206040516103008101908082106001600160401b03831117612b06576102fb916040527f6080806040526102e990816100128239f3fe60806040526004361061029f575f81527f3560e01c806336a52a18146100bb57806342129d00146100b65780635ce6c32760208201527f146100b1578063701da98e146100ac578063704ed542146100a75780637a8e0c60408201527fdd146100a257806391d5a64c1461009d5780639ce110d714610098578063affe60608201527fd0e014610093578063c60496921461008e5763e43f34330361029f5761028a5660808201527f5b610260565b610243565b61021b565b610205565b6101d2565b6101b3565b6160a08201527f0178565b610156565b610119565b346100e7575f3660031901126100e757600260c08201527f5460405160089190911c6001600160a01b03168152602090f35b5f80fd5b918160e08201527f601f840112156100e75782359167ffffffffffffffff83116100e757602083816101008201527f8601950101116100e757565b60403660031901126100e75760043567ffffffff6101208201527fffffffff81116100e7576101459036906004016100eb565b50506024358015156101408201527f1461029f575f80fd5b346100e7575f3660031901126100e757602060ff6002546101608201527f166040519015158152f35b346100e7575f3660031901126100e75760205f54606101808201527f4051908152f35b600435906fffffffffffffffffffffffffffffffff821682036101a08201527f6100e757565b346100e75760203660031901126100e7576101cc610194565b506101c08201527f61029f565b60403660031901126100e75760243567ffffffffffffffff8111616101e08201527ee7576101fe9036906004016100eb565b505061029f565b346100e7576020366102008201527f60031901121561029f575f80fd5b346100e7575f3660031901126100e75760036102208201527f546040516001600160a01b039091168152602090f35b346100e7575f366003196102408201527f01126100e7576020600154604051908152f35b346100e75760a03660031901126102608201527f6100e757610279610194565b5060443560ff81161461029f575f80fd5b3461006102808201527fe7575f3660031901121561029f575f80fd5b63e6fabc0960e01b5f5260205f606102a08201523060481b685afa156100e7575f806204817360e81b01176102c08201527f8051368280378136915af43d5f803e156102e5573d5ff35b3d5ffd00000000006102e08201525ff5908115612b065760018060a01b0382165f52601a84016020528060405f2055601b84016140e68154613be1565b90556040516001600160a01b03831681527f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a29190565b630e2637d160e01b5f5260045ffd5b9190915f516020615ba75f395f51905f52549260018401541561008257815f526019840160205260ff60405f205416600381101561371b5760020361412157815f5260205260405f2060405160608101908082106001600160401b03831117612b0657605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd00000000000060408201525ff5908115612b065760018060a01b0382165f52601a84016020528060405f2055601b84016140e68154613be1565b435f19810193929084116138e85760ff1643811061427857505f925b83811015614254575b505f925050565b80408281036142665750600193505050565b15614273575f1901614244565b61424d565b61428290436138db565b92614244565b903590601e1981360301821215612b0657018035906001600160401b038211612b0657602001918160051b36038313612b0657565b903590605e1981360301821215612b06570190565b906080810160016142e38284614288565b9050116147c5576142f48183614288565b90501561479e5761430491614288565b156139fa5780614313916142bd565b9161431e8380614288565b9190928260051b93838504602014841517156138e8576143408596949561556f565b925f945f97601a60fe19853603019501965b888a1015614701578960051b85013586811215612b0657850161437481613a5d565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036143a68261555b565b161515806146ee575b6146dd575b6001600160a01b036143c584613a5d565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b0390614444906001600160a01b03614402856135a5565b1660248901526020840135604489015261441e60408501614be7565b151560648901526001600160a01b03614439606086016135a5565b1660848901526135b9565b1660a486015261445660a08201614be7565b151560c486015236819003601e190160c082013581811215612b06578201602081359101936001600160401b038211612b06576060820236038513612b0657819061010060e48a015252610144870193905f905b8082106146935750505060e082013590811215612b065701803560208201926001600160401b038211612b06578160051b908136038513612b065791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106145865750505050505050602093916001600160801b03848093039316905af19081156134f5575f91614554575b50816020916001938a015201990198614352565b90506020813d821161457e575b8161456e6020938361367e565b81010312612b0657516001614540565b3d9150614561565b919395979850919395601f19848203018752873582811215612b06578301602081013582526001600160a01b036145bf604083016135a5565b1660208301526060810135603e193683900301811215612b06578101602081013591906040016001600160401b038311612b06578236038113612b0657829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361462e608083016135b9565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103612b06578360209361467060e086956101009560a060019a015201614be7565b151560c0830152601f80199101160101990197019401918a98979695939161450f565b90919460608060019288358152838060a01b036146b260208b016135a5565b1660208201526001600160801b036146cc60408b016135b9565b1660408201520196019201906144aa565b90506146e88161555b565b906143b4565b506146fb60a08401614809565b156143af565b509550955095505050209060406020820135917fc630ddcf92c1a2e0d08b0e482dafa1312a9be3f7374d504c1e418a13fa84424160208351858152a101358061476f575b6040519160208301938452604083015260608201526060815261476960808261367e565b51902090565b7f694c1e8c673a4782b065120b25b67f4198a5f2086b6edbe3c5093a9a64cc83316020604051838152a1614745565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215612b0657018035906001600160401b038211612b0657602001918160061b36038313612b0657565b358015158103612b065790565b60c0820160016148268285614288565b905011614ba6576148378184614288565b90501561479e576148489083614288565b156139fa57803590607e1981360301821215612b065701916060830190602061487083613846565b91019065ffffffffffff8061488484613846565b1691161015614b975761489682613846565b65ffffffffffff80600286015460201c16911610614b88576148dc65ffffffffffff6148d56148cf826148c887613846565b1687615594565b93613846565b1684615594565b1115614b79576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446149228361491a89896142bd565b01358b613a50565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156134f5575f91614b5a575b5015614b4b575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156134f5575f95614b13575b50906149a7916142bd565b916149b182613846565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215612b06578101602081359101936001600160401b038211612b06578160061b36038513612b065760606044890152819052869360c485019392915f5b818110614adb57505050836020959365ffffffffffff829484895f9601356064860152614a4a604060018060a01b0392016135a5565b16608485015216602483015203925af19182156134f5575f92614aa5575b50614a7290613846565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b1660608201526046815261476960668261367e565b9091506020813d602011614ad3575b81614ac16020938361367e565b81010312612b06575190614a72614a68565b3d9150614ab4565b919550919293604080600192838060a01b03614af68a6135a5565b168152602089013560208201520196019101918895949392614a14565b919094506020823d602011614b43575b81614b306020938361367e565b81010312612b06579051936149a761499c565b3d9150614b23565b6367b9145160e01b5f5260045ffd5b614b73915060203d60201161070c576106fe818361367e565b5f61494f565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215612b0657018035906001600160401b038211612b0657602001918136038313612b0657565b35908115158203612b0657565b9060e081016001614c058284614288565b90501161506e57614c168183614288565b90501561479e57614c2691614288565b156139fa5780359060be1981360301821215612b06570160808101614c4b8183614288565b90501561505f5765ffffffffffff600284015460201c1691614c6d83426138db565b614c7c601686015480926138fc565b9360a083013594600181018091116138e857850361505057614ca185614ca793613944565b90613a50565b93614cb66017820154866138db565b421061504157614cc5906155bc565b916005830193428554101561503257614cdd83614809565b92602081019060608101936123ca614d19614cf88785614bb5565b9190614d048587614288565b949091614d11368a613957565b9436916136ba565b97614f79575b50505f989798976003600489019801985b8854811015614d67575f89815260208082208301546001600160a01b031682528b905260409020805460ff19169055600101614d30565b5090919293949596985f5b8851811015614db3576001906001600160a01b03614d90828c613a0e565b5116828060a01b03165f528a60205260405f208260ff1982541617905501614d72565b50929598909396919497508151916001600160401b03831161361857600160401b8311613618576020908254848455808510614f5e575b5001905f5260205f205f5b838110614f415750505050557fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051868152a160c082360312612b06576040519260a08401908482106001600160401b0383111761361857614e6991604052614e6084614be7565b85523690613957565b9460208401958652356001600160401b038111612b0657614e8d90369084016136f0565b604084015235906001600160401b038211612b06570136601f82011215612b0657614ebf903690602081359101613996565b908160608201528260808201525115159251906020825192015192604051938493602085019660f81b8752602185015260418401526061830160208351919301905f5b818110614f1f57505050815203808252614769906020018261367e565b82516001600160a01b0316855286955060209485019490920191600101614f02565b82516001600160a01b031681830155602090920191600101614df5565b614f7390845f528580855f2001910390615363565b5f614dea565b8051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182615021575b5050156150125751895551600189015580518060401b6bfe61000180600a3d393df3000161fffe8211830152600b8101601583015ff091821561500557526002880180546001600160a01b0319166001600160a01b039092169190911790555f80614d1f565b63301164255f526004601cfd5b63375f0aab60e11b5f5260045ffd5b61502b92506159fc565b5f80614f9f565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c1661509c4284615594565b6150b46150ae60168601548093613944565b83613a50565b9182841080806152d0575b1561529e57508310615290576150d59083613a50565b10615281576150e5905b826155d7565b94601960f81b5f523060601b60025260165260365f2093600281101561371b57806151765750506001810361516757156139fa576151268161512d92614bb5565b36916136ba565b9160608351036151585782602061370b940151606060408301519201519260018154910154906155f3565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b9193916001146151895750505050505f90565b6151ae90600860048796970154910154906001600160801b038260801c921690615530565b925f9260035f9201915b86811015615276576151de61059e6151d86151268460051b860186614bb5565b866159c2565b6001600160a01b0381165f9081526020859052604090205460ff16615209575b506001905b016151b8565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c1561524e5750600190615203565b94600161525c92965d613be1565b9385851461526a575f6151fe565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b93929150504282116152c1576150e5926152b9575b506150df565b90505f6152b3565b6347860b9760e01b5f5260045ffd5b506152df601887015485613a50565b42106150bf565b6152ee613add565b5063ffffffff431161534b5765ffffffffffff421161533357604051615313816135fd565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b6306dfcc6560e41b5f5260306004524260245260445ffd5b6306dfcc6560e41b5f5260206004524360245260445ffd5b5f5b82811061537157505050565b5f82820155600101615365565b90600182811c921680156153ac575b602083101461539857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161538d565b604051905f825f516020615b075f395f51905f5254916153d58361537e565b808352926001811690811561546457506001146153f9575b613bbd9250038361367e565b505f516020615b075f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310615448575050906020613bbd928201016153ed565b6020919350806001915483858901015201910190918492615430565b60209250613bbd94915060ff191682840152151560051b8201016153ed565b604051905f825f516020615b475f395f51905f5254916154a28361537e565b808352926001811690811561546457506001146154c557613bbd9250038361367e565b505f516020615b475f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310615514575050906020613bbd928201016153ed565b60209193508060019154838589010152019101909184926154fc565b6001600160801b0380921602911661554881836138fc565b91811561390657061561370b5760010190565b356001600160801b0381168103612b065790565b6040519190601f01601f191682016001600160401b03811183821017612b0657604052565b60166155b361370b9365ffffffffffff600285015460201c16906138db565b910154906138fc565b6155c64282615962565b156155d15760090190565b600f0190565b906155e29082615962565b156155ed57600f0190565b60090190565b929391949061560285876159fc565b156157955782156157955770014551231950b75fc4402da1732fc9bebe19831015615795576001169061010e6156378161556f565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c090880156152765784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b6157a7615a1f565b6157af615a76565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261476960c08261367e565b60ff5f516020615be75f395f51905f525460401c161561581c57565b631afcd79f60e31b5f5260045ffd5b615833613b23565b5060028101546005820154604051929091615873916004916001600160a01b031661585d86613663565b61586682613871565b8652602086015201613b8e565b6040830152606082015290565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116158f7579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156134f5575f516001600160a01b038116156158ed57905f905f90565b505f906001905f90565b5050505f9160039190565b600481101561371b5780615914575050565b6001810361592b5763f645eedf60e01b5f5260045ffd5b60028103615946575063fce698f760e01b5f5260045260245ffd5b6003146159505750565b6335e2f38360e21b5f5260045260245ffd5b906014600e8301549201548083146159b3578181841093119182159111159181906159ac575b1561599d578261599757505090565b14919050565b634c38ae9560e11b5f5260045ffd5b5081615988565b63f26224af60e01b5f5260045ffd5b81519190604183036159f2576159eb9250602082015190606060408401519301515f1a90615880565b9192909190565b50505f9160029190565b6401000003d01990600790829081818009900908906401000003d0199080091490565b615a276153b6565b8051908115615a37576020012090565b50505f516020615b675f395f51905f52548015615a515790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b615a7e615483565b8051908115615a8e576020012090565b50505f516020615c075f395f51905f52548015615a515790565b90615acc5750805115615abd57602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580615afd575b615add575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615ad556fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1029016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1553:48775:165:-:0;;;;;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:48775:165;50033:19;;;1553:48775;50033:38;1553:48775;;-1:-1:-1;;;;;50142:9:165;1553:48775;50170:9;1553:48775;;50230:10;-1:-1:-1;1553:48775:165;;;50258:28;;;;;1553:48775;;;;;;50258:42;1553:48775;;;;;;;-1:-1:-1;1553:48775:165;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20451:38;1553:48775;20451:38;;;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;15270:40;28865:37:169;-1:-1:-1;;;;;;;;;;;1553:48775:165;28886:15:169;28865:37;;:::i;:::-;15270:40:165;:52;1553:48775;;;;;;-1:-1:-1;1553:48775:165;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;13394:34;;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;2357:1:29;1553:48775:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1553:48775:165;;;;;;;;;;;;;;;;20183:52;-1:-1:-1;;;;;;;;;;;1553:48775:165;20183:52;1553:48775;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;26800:11:165;;:16;1553:48775;;-1:-1:-1;;;;;;;;;;;1553:48775:165;26896:19;1553:48775;26896:19;;1553:48775;26896:38;1553:48775;;26989:19;;;1553:48775;;;;;;;;;;;;;;;;;;;;;27099:29;27169:27;;;;;27311:39;;;1553:48775;;27431:13;;27446:22;;;;;;27725:15;;;:28;1553:48775;;;;;27989:29;;;-1:-1:-1;;;;;2670:66:165;;;;27989:29;1553:48775;2670:66;7051:25:77;2670:66:165;7105:8:77;2670:66:165;;;;;;;;;27989:29;;1553:48775;;27989:29;;;;;;:::i;:::-;1553:48775;27979:40;;1553:48775;;;;;;;;;;;;972:64:36;1553:48775:165;;;;;;;;;;;;;;;27838:261;1553:48775;27838:261;;1553:48775;2670:66;1553:48775;;2670:66;1553:48775;2670:66;;1553:48775;2670:66;1553:48775;2670:66;;1553:48775;;2670:66;;1553:48775;;2670:66;;1553:48775;2670:66;1553:48775;2670:66;;1553:48775;;27838:261;;;1553:48775;27838:261;;:::i;:::-;1553:48775;27815:294;;3980:23:40;;:::i;:::-;3993:249:80;1553:48775:165;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1553:48775:165;;;3993:249:80;1553:48775:165;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1553:48775:165;28243:20;;;2670:66;;1553:48775;;;;28421:100;1553:48775;;;;;28351:32;;;1553:48775;;28421:48;28472:49;28421:48;;;1553:48775;28472:49;;1553:48775;28421:100;;:::i;:::-;28535:77;;;;;;1553:48775;;-1:-1:-1;;;28535:77:165;;-1:-1:-1;;;;;1553:48775:165;;;28535:77;;1553:48775;28575:4;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28535:77;;;;;27426:223;-1:-1:-1;1553:48775:165;;-1:-1:-1;;;28648:57:165;;-1:-1:-1;;;;;1553:48775:165;;;;28648:57;;1553:48775;28575:4;1553:48775;;;;;;;;;;;;;;;;;;;;;;;28648:57;;;;;;;;;;;;;;27426:223;1553:48775;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;24237:19;1553:48775;;;;;;;28851:32;;;1553:48775;;;-1:-1:-1;;;1553:48775:165;;;;;28648:57;;;;1553:48775;28648:57;1553:48775;28648:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1553:48775;;;;;;;;;28535:77;;;;;;;;:::i;:::-;1553:48775;;28535:77;;;;;1553:48775;;;;28535:77;1553:48775;;;2670:66;-1:-1:-1;;;2670:66:165;;1553:48775;;;;;2670:66;;;1553:48775;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;27470:3;27516:11;;27549:14;;;;;;:::i;:::-;1553:48775;27549:34;27604:14;;;;;:::i;:::-;1553:48775;;;;;27470:3;;1553:48775;;27431:13;;1553:48775;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;27138:155;27263:19;;;:::i;:::-;27138:155;;1553:48775;-1:-1:-1;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;2288:3;1553:48775;;-1:-1:-1;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;36440:37:165;1553:48775;;;;36440:37;:::i;:::-;36529:32;;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;36577:96;;;;;;1553:48775;;;;;;;;;;;;36577:96;;1553:48775;;;;;;;;36617:4;;36597:10;1553:48775;36577:96;;;:::i;:::-;;;;;;;;;1553:48775;-1:-1:-1;;1553:48775:165;;-1:-1:-1;;;36709:79:165;;36597:10;1553:48775;36709:79;;1553:48775;36617:4;1553:48775;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;36709:79;;;;;;;;;;;1553:48775;;;;;-1:-1:-1;;;;;1553:48775:165;;;;36904:70;1553:48775;;;;36597:10;;36904:70;;36847:238;;;;;1553:48775;;-1:-1:-1;;;36847:238:165;;-1:-1:-1;;;;;1553:48775:165;;;;36847:238;;1553:48775;;;;;;;;;;;;;;;;;;;;;;36847:238;;;;;;;;;36904:70;1553:48775;;;;;;;;36847:238;;;;;;:::i;:::-;1553:48775;;36847:238;;;1553:48775;;;;36847:238;1553:48775;;;;;;;;;36847:238;1553:48775;;;36904:70;;;;1553:48775;-1:-1:-1;;;1553:48775:165;;;;;36709:79;;;;1553:48775;36709:79;1553:48775;36709:79;;;;;;;:::i;:::-;;;;;1553:48775;;;;;;;;;36577:96;;;;;:::i;:::-;1553:48775;;36577:96;;;;1553:48775;;;;;;;;;;;;;;16715:211;-1:-1:-1;;;;;;;;;;;1553:48775:165;16812:25;1553:48775;28865:37:169;28886:15;28865:37;;:::i;:::-;16753:38:165;1553:48775;16812:25;;1553:48775;;-1:-1:-1;;;;;1553:48775:165;;;;;16715:211;;:::i;:::-;1553:48775;;;;;;;;;;;;;;;;;;;;;28865:37:169;-1:-1:-1;;;;;;;;;;;1553:48775:165;28886:15:169;28865:37;;:::i;:::-;16329:41:165;1553:48775;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;12851:23;;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;15758:25;-1:-1:-1;;;;;;;;;;;1553:48775:165;15758:25;1553:48775;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;12583:40;1553:48775;;;;;;;;;;;;;;;;;;;;;;;11993:32;-1:-1:-1;;;;;;;;;;;1553:48775:165;11993:32;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;28865:37:169;-1:-1:-1;;;;;;;;;;;1553:48775:165;28886:15:169;28865:37;;:::i;:::-;16068:41:165;1553:48775;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;:::i;:::-;-1:-1:-1;34206:28:169;34213:20;;;34206:28;:::i;:::-;34292:20;34285:28;34292:20;;;34285:28;:::i;:::-;10700:25:165;;;1553:48775;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:48775:165;;;;;;;34330:241:169;;1553:48775:165;;34330:241:169;;1553:48775:165;;34330:241:169;;1553:48775:165;11089:33;;;1553:48775;11157:39;;;;1553:48775;11225:33;;;1553:48775;;;11302:48;;;1553:48775;11395:49;;;1553:48775;11475:35;1553:48775;11475:35;;1553:48775;;;;;;;;:::i;:::-;;;;;;:::i;:::-;34213:20:169;10783:19:165;;1553:48775;;;11089:33;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10838:27;;;1553:48775;;;;;;;;;;;;;;10743:778;;1553:48775;;;;;;;;;:::i;:::-;10894:20;;;1553:48775;-1:-1:-1;;;;;1553:48775:165;;;2288:3;;11395:49;1553:48775;;;;;;;;2288:3;34292:20:169;1553:48775:165;;;;;;;;2288:3;;;;10743:778;;1553:48775;;;;10743:778;;1553:48775;;;;10997:22;;;1553:48775;:::i;:::-;10743:778;1553:48775;10743:778;;1553:48775;;;11044:16;;1553:48775;;;:::i;:::-;10743:778;1553:48775;10743:778;;1553:48775;;;;10743:778;;1553:48775;;;;10743:778;;1553:48775;;;;10743:778;;1553:48775;;;;10743:778;;1553:48775;;;;10743:778;;1553:48775;;;;10743:778;;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;;17681:22;-1:-1:-1;;;;;;;;;;;1553:48775:165;17681:22;1553:48775;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:48775:165;;;;18918:28;18850:13;18918:28;;18845:129;18865:23;;;;;;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;18918:28;1553:48775;;;18890:3;18947:15;;;18918:28;18947:15;;;;:::i;:::-;;:::i;:::-;1553:48775;;;;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;18909:54;;;;:::i;:::-;1553:48775;;18850:13;;1553:48775;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;14391:77;;28865:37:169;;28886:15;;28865:37;:::i;:::-;14391:77:165;1553:48775;;;9268:329:171;1553:48775:165;;;;;9268:329:171;;;;;;;;;;;;;;;;;;;;1553:48775:165;9268:329:171;;;;1553:48775:165;9268:329:171;1553:48775:165;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20675:19;-1:-1:-1;;;;;;;;;;;1553:48775:165;20675:19;1553:48775;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19190:36;-1:-1:-1;;;;;;;;;;;1553:48775:165;19190:36;1553:48775;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;18443:31;-1:-1:-1;;;;;;;;;;;1553:48775:165;18443:31;:43;1553:48775;;;;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;24141:11:165;;:16;1553:48775;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;24237:19;;1553:48775;24237:38;1553:48775;;24330:19;;;1553:48775;;;;;;;;;;;;;;;;;;;;;24481:32;;;1553:48775;24543:48;;;;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;24605:78;;;;;1553:48775;;-1:-1:-1;;;24605:78:165;;24625:10;1553:48775;24605:78;;1553:48775;24645:4;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24605:78;;;;;1553:48775;-1:-1:-1;;1553:48775:165;;-1:-1:-1;;;24719:61:165;;24625:10;1553:48775;24719:61;;1553:48775;24645:4;1553:48775;;;;;;;;;;;;;;;;;;;;;;24719:61;1553:48775;24605:78;;;;;:::i;:::-;1553:48775;;24605:78;;;;1553:48775;-1:-1:-1;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;2288:3;1553:48775;;-1:-1:-1;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;22833:19;;;1553:48775;;;;;22940:26;;1553:48775;;;22930:37;;22986:25;;1553:48775;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;13123:35;;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;22221:38:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;22221:38;1553:48775;;;22262:1;1553:48775;;;;;;;;22348:42;1553:48775;22221:38;1553:48775;;;;;;;22348:42;1553:48775;;;-1:-1:-1;;;2288:3:165;;;1553:48775;2288:3;;;;1553:48775;;;;;;;;;;;;;;;:::i;:::-;;;;17450:25;-1:-1:-1;;;;;;;;;;;1553:48775:165;17450:25;1553:48775;:::i;:::-;;;;;;-1:-1:-1;;;;;1553:48775:165;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;5647:18:40;:43;;;1553:48775:165;;;;;;;;:::i;:::-;;;;:::i;:::-;;2446:3;1553:48775;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;;1553:48775:165;;;;5870:4:40;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;;5647:43:40;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;5669:21:40;5647:43;;1553:48775:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1553:48775:165;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;3319:20:37;1553:48775:165;;;966:10:34;1553:48775:165;;3319:20:37;1553:48775:165;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1553:48775:165;;;;18150:19;18085:13;18150:19;;18080:120;18100:20;;;;;;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;18122:3;18176:12;;;;;:::i;:::-;1553:48775;;;;;;;;;;;;18141:48;;;;:::i;:::-;1553:48775;;;;;;;;;18085:13;;1553:48775;-1:-1:-1;;;1553:48775:165;;;;;;2288:3;1553:48775;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;:::i;:::-;;;;972:64:36;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;12277:30;-1:-1:-1;;;;;;;;;;;1553:48775:165;12277:30;1553:48775;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;;;;;1553:48775:165;;;;;;;-1:-1:-1;;;;;1553:48775:165;3975:40:29;1553:48775:165;;3975:40:29;1553:48775:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;6429:44:30;;;;;1553:48775:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;1553:48775:165;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;6959:1:30;;-1:-1:-1;;;;;1553:48775:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1553:48775:165;;:::i;:::-;2224:17;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:48775:165;;-1:-1:-1;;;;;1553:48775:165;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:48775:165;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;-1:-1:-1;;;;;1553:48775:165;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:48775:165;;;;;3676:10:40;1553:48775:165;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;;;;;;;;;;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;9473:17;;:::i;:::-;2288:3;;6591:4:30;9451:19:165;;1553:48775;3652:7:40;2288:3:165;;;1553:48775;;2288:3;;;1553:48775;2288:3;1553:48775;2288:3;;;;;1553:48775;2288:3;;;;;;;;;;1553:48775;;;;;;;:::i;:::-;;;;9530:57;1553:48775;9500:27;3676:10:40;9500:27:165;;1553:48775;;;;;;;;;;;;;28865:37:169;28886:15;28865:37;;:::i;:::-;9640:38:165;1553:48775;;;9597:33;;;1553:48775;;2203:1:169;;;;;;;;1553:48775:165;;;;;;;9740:32;;;1553:48775;;;;;;;;;;;9727:57;;;;;;;;9721:63;9727:57;;;;;1553:48775;9721:63;;:::i;:::-;2366:5;;;;;;;;;;9794:48;;;1553:48775;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;9912:49;1553:48775;9912:49;1553:48775;6591:4:30;9912:49:165;;1553:48775;10032:35;1553:48775;-1:-1:-1;;;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;;;;;;;;;;1553:48775:165;6654:20:30;1553:48775:165;;;7060:1;1553:48775;;6654:20:30;1553:48775:165;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:48775;2288:3;;;;9727:57;;;;1553:48775;9727:57;1553:48775;9727:57;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1553:48775;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;;;;;;;6591:4:30;1553:48775:165;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;;3676:10:40;1553:48775:165;;;;;;;;;;;;;;;;6591:4:30;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;7060:1;1553:48775;;;;;;;;;;;;7060:1;1553:48775;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:48775:165;;;-1:-1:-1;;;1553:48775:165;;;;;;2288:3;1553:48775;;;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;;;;;;6591:4:30;1553:48775:165;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;7060:1;1553:48775;;;;;;;;;;;7060:1;1553:48775;;;;;:::i;:::-;;;;6425:105:30;-1:-1:-1;;;6496:23:30;;1553:48775:165;;6496:23:30;6429:44;7060:1:165;1553:48775;;-1:-1:-1;;;;;1553:48775:165;6448:25:30;;6429:44;;;1553:48775:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;;;;1553:48775:165;;;;;4301:16:30;1553:48775:165;;4724:16:30;;:34;;;;1553:48775:165;;4788:16:30;:50;;;;1553:48775:165;4853:13:30;:30;;;;1553:48775:165;4849:91:30;;;6959:1;1553:48775:165;;;-1:-1:-1;;;;;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;4977:67:30;;1553:48775:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;1553:48775:165;;:::i;:::-;2224:17;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1553:48775:165;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3676:10:40;1553:48775:165;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;;;;;;;;;;1553:48775:165;6891:76:30;;:::i;:::-;;;:::i;:::-;4873:15:165;:19;2288:3;;4931:21;;2288:3;;4998:32;;;2288:3;;;5279:2;5243:32;;;;:::i;:::-;2288:3;5223:58;;2288:3;;;1553:48775;;;;;;;;;:::i;:::-;2288:3;1553:48775;;;2288:3;;;;;2303:62:29;;:::i;:::-;1553:48775:165;;1800:178:73;;;;;;;1553:48775:165;;;1800:178:73;;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;49751:24;;;5437:17;;:::i;:::-;2288:3;;1553:48775;5415:19;;1553:48775;3652:7:40;2288:3:165;;;1553:48775;2288:3;;;1553:48775;;2288:3;;;;;;1553:48775;2288:3;;;;;;;;;;;1553:48775;;;;;;:::i;:::-;2288:3;;;-1:-1:-1;;;;;1553:48775:165;;;;5487:52;;2288:3;;;1553:48775;;;5487:52;;;;2288:3;;;5464:20;;;;;1553:48775;;;;;;-1:-1:-1;;;;;;1553:48775:165;;;;;;;2288:3;;;1553:48775;;;;;;;;2288:3;;;1553:48775;;;;;;;;;;2203:1:169;5549:25:165;;;2203:1:169;1553:48775:165;;:::i;:::-;;;;;;;:::i;:::-;1855:13:169;1553:48775:165;;2383:18:169;1553:48775:165;23869:89:169;;;1553:48775:165;5737:22;;;1553:48775;;-1:-1:-1;;;;;;2203:1:169;;;;;1553:48775:165;;;;;;;;;:::i;:::-;;;;;5824:65;;1553:48775;;;5824:65;1553:48775;5805:16;;;1553:48775;2288:3;2203:1:169;;1553:48775:165;2203:1:169;;;1553:48775:165;5899:33;;;2203:1:169;;-1:-1:-1;;2203:1:169;1553:48775:165;;;2203:1:169;;;1553:48775:165;;-1:-1:-1;;;6003:37:165;;1553:48775;;;;;6003:37;;1553:48775;6003:37;1553:48775;6003:37;;;;;;;;5997:43;6003:37;;;;;5997:43;;:::i;:::-;2366:5;;;;;;;;;;6050:48;;;1553:48775;2366:5;2446:3;2366:5;;2446:3;2366:5;;;;;6168:49;2446:3;6168:49;1553:48775;6168:49;;1553:48775;2446:3;1553:48775;;;;;;:::i;:::-;;;2446:3;;1553:48775;2446:3;;1553:48775;2446:3;1553:48775;2446:3;;1553:48775;;;;2446:3;:::i;:::-;1553:48775;;2446:3;;:::i;:::-;2203:1:169;;;;;1145:66:27;;1837:24:26;;:71;;;;1553:48775:165;;;;;;2203:1:169;6360:37:165;;;1553:48775;2203:1:169;5279:2:165;1553:48775;;;1705:1673:171;;;;;;;;;;;;;;;;5737:22:165;1705:1673:171;;;;;;;;;;;48633:52:165;;1553:48775;;-1:-1:-1;;;;;;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;1705:1673:171;;48879:15:165;;;;48762:13;48781:16;;;;48762:13;48806:3;1553:48775;;48777:27;;;;;1553:48775;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;-1:-1:-1;1553:48775:165;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;48762:13;;48777:27;;;;;;;48939:13;48981:3;1553:48775;;48954:25;;;;;1553:48775;;-1:-1:-1;;;;;49021:17:165;1553:48775;49021:17;;:::i;:::-;2288:3;1553:48775;;;;;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;;48939:13;;48954:25;;;;;;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;;;;;48934:163;1553:48775;;;;;;;;;;;;;;;4873:15;;;;1553:48775;;4873:15;;49149:28;;;1553:48775;6624:35;1553:48775;5064:101:30;;1553:48775:165;;;5064:101:30;1553:48775:165;5140:14:30;1553:48775:165;-1:-1:-1;;;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;5140:14:30;1553:48775:165;;;2288:3;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;1553:48775:165;;;;;;2288:3;1553:48775;1705:1673:171;;;;1553:48775:165;1705:1673:171;;1553:48775:165;-1:-1:-1;;;1553:48775:165;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;2366:5:165;-1:-1:-1;;;2288:3:165;;;1553:48775;2288:3;1553:48775;2288:3;;2366:5;-1:-1:-1;;;2288:3:165;;;1553:48775;2288:3;1553:48775;2288:3;;6003:37;1553:48775;;;;;;;;;2288:3;-1:-1:-1;;;2288:3:165;;1553:48775;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:48775;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:48775;2288:3;;;-1:-1:-1;;;2288:3:165;;1553:48775;2288:3;;1553:48775;;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;;3676:10:40;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;1553:48775:165;;;;-1:-1:-1;;;1553:48775:165;;;;;;2288:3;1553:48775;;;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1553:48775:165;;;;-1:-1:-1;;;1553:48775:165;;;;;;2288:3;1553:48775;4977:67:30;-1:-1:-1;;;;;;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1553:48775:165;4906:23:30;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1553:48775:165;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1553:48775:165;4815:4:60;4807:23;4803:145;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1553:48775:165;;4908:29:60;1553:48775:165;-1:-1:-1;1553:48775:165;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1553:48775:165;4392:4:60;4384:23;;;:120;;;;1553:48775:165;4367:251:60;;;2303:62:29;;:::i;:::-;1553:48775:165;;-1:-1:-1;;;5865:52:60;;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;5865:52:60;;;;;;;;1553:48775:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1553:48775:165;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;;-1:-1:-1;;;;;;;;;;;5959:40:60;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;;;;;1553:48775:165;;;;;2407:36:53;;;;1553:48775:165;;;;2458:15:53;:11;;4065:25:66;;1553:48775:165;4107:55:66;4065:25;;;;;;;1553:48775:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1553:48775:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1553:48775:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1553:48775:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1553:48775:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1553:48775:165;;;6026:34:60;;5865:52;;;;1553:48775:165;5865:52:60;;1553:48775:165;5865:52:60;;;;;;1553:48775:165;5865:52:60;;;:::i;:::-;;;1553:48775:165;;;;;5865:52:60;;;;1553:48775:165;-1:-1:-1;1553:48775:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1553:48775:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1553:48775:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;2971:9:37;2967:62;;1553:48775:165;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;3627:22:37;1553:48775:165;;;966:10:34;1553:48775:165;;3627:22:37;1553:48775:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1553:48775:165;3003:15:37;;1553:48775:165;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1553:48775:165;21210:23;;1553:48775;;-1:-1:-1;;;;;;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;28865:37:169;-1:-1:-1;;;;;;;;;;;1553:48775:165;28886:15:169;28865:37;;:::i;:::-;1553:48775:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;30154:36:165;1553:48775;;;;30154:36;:::i;:::-;-1:-1:-1;;;;;;1553:48775:165;;;;30241:70;1553:48775;;;;30278:10;;30241:70;-1:-1:-1;;;;;;;;;;;1553:48775:165;12851:23;;1553:48775;-1:-1:-1;;;;;1553:48775:165;30201:134;;;;;1553:48775;;-1:-1:-1;;;30201:134:165;;-1:-1:-1;;;;;1553:48775:165;;;;30201:134;;1553:48775;;;;;;;;;;;;;;;;;;30201:134;1553:48775;;30201:134;;;;;;;;;1553:48775;;;;;;;;30241:70;;;1553:48775;;;;;;;;;;;;;;3980:23:40;;:::i;1553:48775:165:-;;;;;;;;;;;;;20451:38;1553:48775;-1:-1:-1;;;;;;;;;;;1553:48775:165;20451:38;1553:48775;;;;;;;;;;;;;;;;;;;;;11739:22;-1:-1:-1;;;;;;;;;;;1553:48775:165;11739:22;1553:48775;;;;;;;;;;;;;;;;;;;;;19783:51;-1:-1:-1;;;;;;;;;;;1553:48775:165;19783:51;1553:48775;;;;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1553:48775:165;37816:19;1948:4:38;37816:19:165;;1553:48775;37816:38;1553:48775;;;;38054:20;38050:295;;1553:48775;38458:27;;;1553:48775;;;;38494:33;1553:48775;38458:69;1553:48775;;;;38593:37;;1553:48775;;;38634:21;1553:48775;;;38634:21;;:::i;:::-;1553:48775;-1:-1:-1;1553:48775:165;;38724:28;1553:48775;;;;38724:28;;:::i;:::-;1553:48775;41713:22;;1553:48775;;41713:22;1553:48775;;;;41713:22;:::i;:::-;2366:5;;;;;;;;1553:48775;2366:5;;;;;;;41848:40;2366:5;;;41848:40;:::i;:::-;41898:18;;;41947:22;;;;;;2366:5;39522:146;2366:5;;;;1083:131:25;;1553:48775:165;38864:30;1553:48775;;;;38864:30;;:::i;:::-;38940:33;1553:48775;;;;38940:33;;:::i;:::-;1553:48775;39073:21;1553:48775;;;38634:21;39073;:::i;:::-;1553:48775;39155:13;;1553:48775;;39155:13;;:::i;:::-;1553:48775;;;20378:303:169;1553:48775:165;20378:303:169;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;38494:33;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20378:303:169;;;;;;:::i;:::-;1553:48775:165;20355:336:169;;38458:27:165;;;;;1553:48775;;39427:21;1553:48775;;;38634:21;39427;:::i;:::-;1553:48775;;;;38593:37;;1553:48775;;;;38593:37;;1553:48775;39464:26;1553:48775;;;;;;39464:26;1553:48775;39633:21;1553:48775;;;38634:21;39633;:::i;:::-;1553:48775;;;;39522:146;;:::i;:::-;2113:66;;;3556:68:76;757:66:38;3556:68:76;1553:48775:165;;2113:66;-1:-1:-1;;;2113:66:165;;1553:48775;;2113:66;41971:3;42033:22;41713;1553:48775;;41713:22;1553:48775;;;;42033:22;:::i;:::-;1553:48775;;;;;;;;;;;;;42098:19;;;1553:48775;;;;;;;;38458:27;1553:48775;;;;;1948:4:38;42098:79:165;1553:48775;;1948:4:38;1553:48775:165;;;42676:17;1553:48775;;;;;;;;;42256:17;;;;;:::i;:::-;;;;1553:48775;;;;;;;-1:-1:-1;42098:19:165;;;1553:48775;;;;;;;-1:-1:-1;;1553:48775:165;;;;;42379:39;;;1553:48775;;42379:41;;;:::i;:::-;1553:48775;;42252:270;42574:17;42541:51;42574:17;;;;:::i;:::-;1553:48775;;;;;;;;;;;;;42541:51;42676:17;:::i;:::-;1553:48775;;;;;;18081:159:169;;;;;;;4093:83:22;;;;1553:48775:165;41971:3;1553:48775;41932:13;;;42252:270;1553:48775;;42098:19;1553:48775;;;;;;;;42098:19;1553:48775;;;;;;;;;;42252:270;;1553:48775;-1:-1:-1;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;;2288:3;1553:48775;;-1:-1:-1;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;38050:295;38098:56;38140:13;;1553:48775;;38140:13;;:::i;:::-;1553:48775;;;;;38098:56;:::i;:::-;1553:48775;;;;38285:21;1553:48775;;;38285:21;;:::i;:::-;1553:48775;38267:15;:39;38050:295;1553:48775;-1:-1:-1;;;1553:48775:165;;;;;;-1:-1:-1;;;1553:48775:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1553:48775:165;1789:30:38;;1553:48775:165;;;;;;;-1:-1:-1;;1553:48775:165;;;;2303:62:29;;:::i;:::-;1553:48775:165;;21528:51;-1:-1:-1;;;;;;;;;;;1553:48775:165;21528:51;1553:48775;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;32197:36:165;1553:48775;;;;32197:36;:::i;:::-;32285:32;;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;32333:96;;;;;;1553:48775;;;;;;;;;;;;32333:96;;1553:48775;;;;;;;;32373:4;;32353:10;1553:48775;32333:96;;;:::i;:::-;;;;;;;;;1553:48775;-1:-1:-1;;1553:48775:165;;-1:-1:-1;;;32465:79:165;;32353:10;1553:48775;32465:79;;1553:48775;32373:4;1553:48775;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;32465:79;;;;;;;;;;;1553:48775;;;;;-1:-1:-1;;;;;1553:48775:165;;;;32660:70;1553:48775;;;;32353:10;;32660:70;;-1:-1:-1;;;;;;;;;;;1553:48775:165;32285:20;12851:23;1553:48775;-1:-1:-1;;;;;1553:48775:165;32603:236;;;;;1553:48775;;-1:-1:-1;;;32603:236:165;;-1:-1:-1;;;;;1553:48775:165;;;;32603:236;;1553:48775;;;;;;;;;;;;;;32603:236;1553:48775;;;32603:236;;;;;;;;;;1553:48775;;;;;;;;32660:70;;;;1553:48775;-1:-1:-1;;;1553:48775:165;;;;;32465:79;;;;1553:48775;32465:79;1553:48775;32465:79;;;;;;;:::i;:::-;;;;;1553:48775;;;;;;;;;32333:96;;;;;:::i;:::-;1553:48775;;32333:96;;;;1553:48775;;;;;;-1:-1:-1;;1553:48775:165;;;;;;:::i;:::-;;;:::i;:::-;1944:72:37;;;:::i;:::-;34265:37:165;1553:48775;;;;34265:37;:::i;:::-;-1:-1:-1;;;;;;1553:48775:165;;;;34353:70;1553:48775;;;;34390:10;;34353:70;;34313:136;;;;;1553:48775;;-1:-1:-1;;;34313:136:165;;-1:-1:-1;;;;;1553:48775:165;;;;34313:136;;1553:48775;;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;34313:136;1553:48775;-1:-1:-1;34313:136:165;;;;;;;;1553:48775;34313:136;;;34353:70;1553:48775;;;;;;;34313:136;1553:48775;34313:136;;;:::i;:::-;1553:48775;34313:136;;;1553:48775;;;;;;;;;34353:70;;;;1553:48775;;;;;;-1:-1:-1;;1553:48775:165;;;;2303:62:29;;:::i;:::-;1553:48775:165;;21925:52;-1:-1:-1;;;;;;;;;;;1553:48775:165;21925:52;1553:48775;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;19448:42;-1:-1:-1;;;;;;;;;;;1553:48775:165;19448:42;1553:48775;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:48775:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:48775:165;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;:::o;:::-;2288:3;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1553:48775:165;;;;;;-1:-1:-1;;1553:48775:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1553:48775:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;:::o;:::-;2288:3;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;-1:-1:-1;;1553:48775:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:48775:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1553:48775:165;;;;:::o;2224:17::-;1553:48775;;;;;;;:::i;:::-;2224:17;1553:48775;;-1:-1:-1;;;1553:48775:165;2224:17;;;:::o;2288:3::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2203:1:169;;;;;;;;;;1553:48775:165;;;;;;;2203:1:169;:::o;:::-;1553:48775:165;;2203:1:169;;;;;;;;:::o;2366:5:165:-;;;;;;;;;;;;;;;;:::o;2446:3::-;;;;;;;;;;;1553:48775;;;;:::i;:::-;2446:3;;;1553:48775;;;2446:3;;;1553:48775;2446:3;;;:::o;:::-;-1:-1:-1;;;;;2446:3:165;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1553:48775;;;;;;;:::i;:::-;2446:3;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1553:48775;;;;;:::i;:::-;2446:3;;;;;;;;1553:48775;;;;;;;;;;;;:::o;:::-;2288:3;;;1553:48775;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1553:48775:165;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;1553:48775:165;;;;;;;:::o;14648:375::-;28865:37:169;-1:-1:-1;;;;;;;;;;;1553:48775:165;28886:15:169;28865:37;;:::i;:::-;14900:22:165;;;1553:48775;14852:22;;;;;;15005:11;;;;1553:48775;14648:375;:::o;14876:3::-;14923:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1553:48775:165;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;14899:39;14895:90;;1553:48775;;14837:13;;14895:90;14958:12;;;;1553:48775;14958:12;:::o;1553:48775::-;;;;;;;:::i;:::-;-1:-1:-1;1553:48775:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1553:48775:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1553:48775:165;;-1:-1:-1;1553:48775:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1553:48775:165;;-1:-1:-1;1553:48775:165;;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1553:48775:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1553:48775:165;;-1:-1:-1;;;;;;1553:48775:165;;;;;;;-1:-1:-1;;;;;1553:48775:165;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1553:48775:165;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1553:48775:165;;-1:-1:-1;2763:40:29;2709:128:37;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;39772:934:165;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;39948:19;;;;1553:48775;39948:38;1553:48775;;;;;40041:19;;;1553:48775;;;;;;;;;;;;;;40079:24;40041:62;1553:48775;;3543:209:25;1553:48775:165;3543:209:25;1553:48775:165;3543:209:25;1553:48775:165;;3543:209:25;1553:48775:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1651:6:167;1052:614:22;1553:48775:165;1052:614:22;1888:66:167;4093:83:22;;1998:66:167;1553:48775:165;4093:83:22;;;2108:66:167;1553:48775:165;4093:83:22;;;2218:66:167;2210:6;4093:83:22;;;2328:66:167;2320:6;4093:83:22;;;2438:66:167;2430:6;4093:83:22;;;2548:66:167;2540:6;4093:83:22;;;2658:66:167;2650:6;4093:83:22;;;2768:66:167;2760:6;4093:83:22;;;2878:66:167;2870:6;4093:83:22;;;2988:66:167;2980:6;4093:83:22;;;3098:66:167;3090:6;4093:83:22;;;3208:66:167;3200:6;4093:83:22;;;3318:66:167;3310:6;4093:83:22;;;3428:66:167;3420:6;4093:83:22;;;3538:66:167;3530:6;4093:83:22;;;3648:66:167;3640:6;4093:83:22;;;3758:66:167;3750:6;4093:83:22;;;3868:66:167;3860:6;4093:83:22;;;3978:66:167;3970:6;4093:83:22;;;4088:66:167;4080:6;4093:83:22;;;4198:66:167;4190:6;4093:83:22;;;40501:4:165;4536:2:167;1553:48775:165;4437:66:167;;;;;4436:103;4416:6;4093:83:22;;;4592:66:167;4584:6;4093:83:22;;;40378:135:165;4670:150:167;;;;;;1553:48775:165;;;;;;;-1:-1:-1;1553:48775:165;40524:28;;;1553:48775;;;;-1:-1:-1;1553:48775:165;;40581:33;;;:35;1553:48775;;40581:35;:::i;:::-;1553:48775;;;;-1:-1:-1;;;;;1553:48775:165;;;;40632:32;;1553:48775;;40632:32;40675:24;39772:934;:::o;1553:48775::-;;;;;;;;;39772:934;;;;-1:-1:-1;;;;;;;;;;;1553:48775:165;39948:19;32228:4;39948:19;;1553:48775;39948:38;1553:48775;;;-1:-1:-1;1553:48775:165;40041:19;;;1553:48775;;;;-1:-1:-1;1553:48775:165;;;;;;;;;40079:24;40041:62;1553:48775;;3543:209:25;-1:-1:-1;3543:209:25;1553:48775:165;3543:209:25;1553:48775:165;-1:-1:-1;3543:209:25;1553:48775:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;1545:4:168;1052:614:22;1553:48775:165;1052:614:22;2041:66:168;4093:83:22;;40440:4:165;1052:614:22;1553:48775:165;2187:66:168;2186:105;1553:48775:165;4093:83:22;;;2342:66:168;1553:48775:165;4093:83:22;;;-1:-1:-1;2420:150:168;;;;;;1553:48775:165;;;;;;;-1:-1:-1;1553:48775:165;40524:28;;;1553:48775;;;;-1:-1:-1;1553:48775:165;;40581:33;;;:35;1553:48775;;40581:35;:::i;23066:532:169:-;23191:12;-1:-1:-1;;2288:3:165;;;23066:532:169;;2288:3:165;;;;1553:48775;;23191:12:169;23231:22;;23191:12;;23231:50;1553:48775:165;23231:50:169;;23315:8;;;;;;23291:278;-1:-1:-1;1553:48775:165;;-1:-1:-1;;23066:532:169:o;23296:17::-;23354:12;;23384:11;;;;;-1:-1:-1;23206:1:169;;-1:-1:-1;;;23415:11:169:o;23380:119::-;23451:8;23447:52;;-1:-1:-1;;1553:48775:165;23296:17:169;;23447:52;23479:5;;23231:50;23260:21;23191:12;;23260:21;:::i;:::-;23231:50;;;1553:48775:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;40712:846::-;;40840:22;;;40873:1;40840:22;;;;:::i;:::-;:34;;;1553:48775;;40917:22;;;;:::i;:::-;:34;;;40913:177;;41144:22;;;:::i;:::-;1553:48775;;;;;;;:::i;:::-;41234:23;;;;;:::i;:::-;2366:5;;;;1553:48775;2366:5;;;;;46746:2;2366:5;;;;;;;46792:36;;;;;;:::i;:::-;46838:18;1553:48775;46872:13;1553:48775;;47007:28;1553:48775;;;;;;47007:28;;46867:685;46907:3;46887:18;;;;;;1553:48775;;;;;;;;;;;;;;47036:18;;;:::i;:::-;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;47007:53;1553:48775;;;40840:22;47130:25;;-1:-1:-1;;;;;47130:25:165;;;:::i;:::-;1553:48775;47130:30;;:72;;;46907:3;47126:144;;46907:3;-1:-1:-1;;;;;47317:18:165;;;:::i;:::-;1553:48775;;-1:-1:-1;;;47309:76:165;;46746:2;47309:76;;;1553:48775;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;-1:-1:-1;;;;;1553:48775:165;;;:::i;:::-;;;;;;46746:2;1553:48775;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;;;;;;;46746:2;1553:48775;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46746:2;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;42541:51;1553:48775;;;;;;;;;;;;46746:2;1553:48775;;;;;;;;;;;;;;;;;;;;;;;47309:76;;;;;;;46746:2;47309:76;;-1:-1:-1;;;;;47309:76:165;;;;1553:48775;;47309:76;;;;;;;;1553:48775;47309:76;;;1553:48775;4093:83:22;;46746:2:165;4093:83:22;40873:1:165;4093:83:22;;;;1553:48775:165;46907:3;1553:48775;46872:13;;;47309:76;;;46746:2;47309:76;;;;;;;;;1553:48775;47309:76;;;:::i;:::-;;;1553:48775;;;;;40873:1;47309:76;;;;;-1:-1:-1;47309:76:165;;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;46746:2;1553:48775;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;:::i;:::-;;46746:2;1553:48775;;;;;;;-1:-1:-1;;1553:48775:165;;;;;;;;;;;;46746:2;1553:48775;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;40840:22;1553:48775;;;:::i;:::-;;;;;;;;;;40840:22;1553:48775;;;;;;;;;;;;;;;;;;46746:2;1553:48775;;;;;;;;40873:1;1553:48775;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40873:1;1553:48775;;;;;;;;;;;46746:2;1553:48775;;;:::i;:::-;;46746:2;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;;:::i;:::-;;;;;;;;;;;;;;47126:144;47230:25;;;;;:::i;:::-;47126:144;;;47130:72;47165:37;;1553:48775;47165:37;;;:::i;:::-;47164:38;47130:72;;46887:18;;;;;;;;;;1083:131:25;41286:16:165;1553:48775;46746:2;41286:16;;1553:48775;;41274:29;46746:2;1553:48775;;;;;41274:29;41317:32;1553:48775;41317:46;41313:127;;46867:685;1553:48775;;17705:64:169;46746:2:165;17705:64:169;;1553:48775:165;;;;;;;;;;;;17705:64:169;;;40840:22:165;17705:64:169;;:::i;:::-;1553:48775:165;17695:75:169;;40712:846:165;:::o;41313:127::-;41384:45;46746:2;1553:48775;;;;;41384:45;41313:127;;40913:177;41059:20;;;41066:13;41059:20;:::o;1553:48775::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;43008:1705::-;43138:24;;;43173:1;43138:24;;;;:::i;:::-;:36;;;1553:48775;;43219:24;;;;:::i;:::-;:36;;;43215:179;;43450:24;;;;:::i;:::-;1553:48775;;;;;;;;;;;;;;;;;;43496:21;;;;;43520;43496;;;:::i;:::-;43520;;;1553:48775;43520:21;;;;:::i;:::-;1553:48775;;;43496:45;1553:48775;;;43599:21;;;:::i;:::-;1553:48775;43624:29;;;;1553:48775;43520:21;1553:48775;;;;43599:54;1553:48775;;43810:46;1553:48775;43834:21;43730:46;43754:21;;;;:::i;:::-;1553:48775;43730:46;;:::i;:::-;43834:21;;:::i;:::-;1553:48775;43810:46;;:::i;:::-;-1:-1:-1;1553:48775:165;;;43978:31;;;1553:48775;44047:32;;;;1553:48775;;;;;-1:-1:-1;;;;;1553:48775:165;;;;44146:19;;;;1553:48775;;;;43520:21;;1553:48775;44034:144;44115:62;43520:21;44146:19;;1553:48775;44146:19;:::i;:::-;:31;1553:48775;44115:62;;:::i;:::-;44146:19;1553:48775;;;;;;;;;44034:144;;;;;;1553:48775;;;;;44034:144;;;;;;;1553:48775;44034:144;;;43008:1705;1553:48775;;;;;44146:19;1553:48775;-1:-1:-1;;;44268:185:165;;-1:-1:-1;;;;;1553:48775:165;;;44034:144;44268:185;;1553:48775;;;;;;;;43520:21;44413:26;;;1553:48775;44034:144;1553:48775;;;;44268:185;1553:48775;-1:-1:-1;44268:185:165;;;;;;;;1553:48775;44268:185;;;43008:1705;44554:19;;;;;:::i;:::-;44575:21;;;;:::i;:::-;1553:48775;44146:19;1553:48775;;;;;44505:92;;44146:19;44034:144;44505:92;;1553:48775;;;;;;;;;;;;;;;;;;;;43520:21;1553:48775;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;44047:32;1553:48775;;;;;;;43496:21;44034:144;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;43520:21;1553:48775;;;;;;;;;;;44268:185;1553:48775;;;;44146:19;1553:48775;;;;;;;;:::i;:::-;;;;;;;;;;;44505:92;;;;;;;;;1553:48775;44505:92;;;1553:48775;44684:21;;;;:::i;:::-;44146:19;1553:48775;18754:70:169;43520:21:165;18754:70:169;;1553:48775:165;;;44146:19;1553:48775;;;;;;;;;;43496:21;1553:48775;;;18754:70:169;;;;;;;:::i;44505:92:165:-;;;;43520:21;44505:92;;43520:21;44505:92;;;;;;1553:48775;44505:92;;;:::i;:::-;;;1553:48775;;;;;;44684:21;44505:92;;;;;-1:-1:-1;44505:92:165;;1553:48775;;;;;;;44146:19;1553:48775;43173:1;1553:48775;;;;;;;;;:::i;:::-;;;;43520:21;1553:48775;;;43520:21;1553:48775;;;;;;;;;;;;;;;;44268:185;;;;;43520:21;44268:185;;43520:21;44268:185;;;;;;1553:48775;44268:185;;;:::i;:::-;;;1553:48775;;;;;;;44554:19;44268:185;;;;;-1:-1:-1;44268:185:165;;1553:48775;;;;;;44034:144;1553:48775;;44034:144;;;;43520:21;44034:144;43520:21;44034:144;;;;;;;:::i;:::-;;;;1553:48775;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;44780:1705::-;;44913:27;;;44951:1;44913:27;;;;:::i;:::-;:39;;;1553:48775;;45000:27;;;;:::i;:::-;:39;;;44996:182;;45237:27;;;:::i;:::-;1553:48775;;;;;;;;;;;;;;;;;;45286:22;;;;;;;:::i;:::-;:33;;;1553:48775;;;45453:29;;;1553:48775;;;;45435:15;:47;:15;;:47;:::i;:::-;45434:72;45486:16;;;1553:48775;45434:72;;;:::i;:::-;45525:20;;;;1553:48775;;44951:1;1553:48775;;;;;;;45525:43;;1553:48775;;45659:43;;45627:75;45659:43;;:::i;:::-;45627:75;;:::i;:::-;45754:25;45739:40;45754:25;;;1553:48775;45739:40;;:::i;:::-;45435:15;45720:59;1553:48775;;45898:34;;;:::i;:::-;45950:28;1553:48775;45950:28;;45435:15;;1553:48775;;45950:46;1553:48775;;;46145:34;;;:::i;:::-;46193:31;1553:48775;46193:31;;46238:45;;;;;2446:3;;46238:45;;;;:::i;:::-;46297:22;;;;;;:::i;:::-;1553:48775;;;2446:3;1553:48775;2446:3;;:::i;:::-;1553:48775;;2446:3;;:::i;:::-;47996:752;;;44780:1705;48762:13;;1553:48775;48762:13;;;48781:16;1553:48775;48781:16;;;48879:15;;48757:168;48806:3;1553:48775;;48777:27;;;;;1553:48775;;;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;-1:-1:-1;;1553:48775:165;;;44951:1;1553:48775;48762:13;;48777:27;;;;;;;;;;1553:48775;48981:3;1553:48775;;48954:25;;;;;44951:1;;-1:-1:-1;;;;;49021:17:165;1553:48775;49021:17;;:::i;:::-;2288:3;1553:48775;;;;;;;-1:-1:-1;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;;48939:13;;48954:25;;;;;;;;;;;;1553:48775;;;-1:-1:-1;;;;;1553:48775:165;;;;-1:-1:-1;;;1553:48775:165;;;;;;;;;;;;;;;;48934:163;1553:48775;;;;;;;;;;;;;;;;;;;;46371:47;1553:48775;;;;;;46371:47;1553:48775;;;;;;;;;;45525:20;1553:48775;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;46238:45;1553:48775;;;;45286:22;1553:48775;;;;;;19199:30:169;;2203:1;1553:48775:165;2203:1:169;;19249:32;;2203:1;1553:48775:165;;;19114:257:169;;;1553:48775:165;19114:257:169;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1553:48775:165;;19114:257:169;;;;;;1553:48775:165;19114:257:169;;;:::i;1553:48775:165:-;;;-1:-1:-1;;;;;1553:48775:165;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;44951:1;1553:48775;;;;2288:3;;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;44951:1;1553:48775;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;47996:752;2203:1:169;;48457:25:165;1553:48775;48457:25;;2203:1:169;;;1145:66:27;;1837:24:26;;:71;;;;47996:752:165;1553:48775;;;;;2203:1:169;1553:48775:165;;2203:1:169;44951::165;1553:48775;;;1705:1673:171;;;;;;;;;;;;;;;;;;;1553:48775:165;1705:1673:171;;;;;;;45453:29:165;48633:52;;1553:48775;;-1:-1:-1;;;;;;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;-1:-1:-1;;47996:752:165;;1705:1673:171;;1553:48775:165;1705:1673:171;;;;1553:48775:165;;;;;;;;;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24811:3813:169;;;;;;1553:48775:165;32809:29:169;;;1553:48775:165;;;;32841:22:169;25180:15;32841:22;;:::i;:::-;32809:77;32841:45;32866:16;;;1553:48775:165;32841:45:169;;;:::i;:::-;32809:77;;:::i;:::-;25210:15;;;;;;:82;;24811:3813;25206:676;;;25316:35;;;1553:48775:165;;25401:25:169;;;;:::i;:::-;:39;1553:48775:165;;25976:24:169;25206:676;;25976:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1553:48775:165;3226:200:80;26041:4:169;3226:200:80;;32809:29:169;3226:200:80;32866:16:169;3226:200:80;;1553:48775:165;3226:200:80;1553:48775:165;32809:29:169;1553:48775:165;;;;;26104:37:169;;;26165:23;;32809:19;26165:23;;1553:48775:165;;;;;;;2446:3;1553:48775;;:::i;:::-;2446:3;;;:::i;:::-;1553:48775;3226:200:80;1553:48775:165;;26296:23:169;1553:48775:165;;26486:240:169;1553:48775:165;27007:272:169;26486:240;;;3226:200:80;26486:240:169;;;;;;;1553:48775:165;32809:19:169;1553:48775:165;;27096:32:169;;1553:48775:165;27007:272:169;;:::i;1553:48775:165:-;;;;;;;;;;;;;;;;;;26100:2495:169;1553:48775:165;;;32809:19:169;27300:37;27296:1299;;26100:2495;;;;;1553:48775:165;24811:3813:169;:::o;27296:1299::-;27373:199;27410:15;27450:25;27410:15;;;;;1553:48775:165;27450:25:169;;1553:48775:165;;-1:-1:-1;;;;;1553:48775:165;;;;;27373:199:169;;:::i;:::-;27587:27;1553:48775:165;27634:13:169;27830:14;1553:48775:165;27830:14:169;;27629:929;27673:3;27649:22;;;;;;3927:8:77;3871:27;2446:3:165;1553:48775;;;;;;;;:::i;2446:3::-;3871:27:77;;:::i;3927:8::-;-1:-1:-1;;;;;1553:48775:165;;;;;;;;;;;;;;;;27826:718:169;;27673:3;;32809:19;27673:3;27634:13;1553:48775:165;27634:13:169;;27826:718;-1:-1:-1;;;;;2780:163:73;1553:48775:165;2780:163:73;;;2113:66:165;1553:48775;2780:163:73;;;;3327:69:76;;28189:50:169;;;28267:8;32809:19;28267:8;;;28185:223;3556:68:76;32809:19:169;28434:17;3556:68:76;;;28434:17:169;:::i;:::-;:30;;;;28430:96;;27826:718;;;28430:96;28492:11;;;;;;;32809:19;28492:11;:::o;27649:22::-;;;;;;;;1553:48775:165;28572:12:169;:::o;1553:48775:165:-;;;;;;;;;;;;;;;;;;25206:676:169;25180:15;;;;;;25675:21;;1553:48775:165;;25976:24:169;25733:69;;;25206:676;;;;25733:69;25772:15;;25733:69;;;1553:48775:165;;;;;;;;;25210:82:169;25260:32;25247:45;25260:32;;;1553:48775:165;25247:45:169;;:::i;:::-;25180:15;25229:63;25210:82;;24091:229;1553:48775:165;;:::i;:::-;;;24269:12:169;15374:24:83;15370:103;;1553:48775:165;837:15:87;14374:24:83;14370:103;;1553:48775:165;;;;;:::i;:::-;24239:1:169;1553:48775:165;;;24269:12:169;1553:48775:165;24207:106:169;;;1553:48775:165;;837:15:87;1553:48775:165;;24207:106:169;;1553:48775:165;24091:229:169;:::o;14370:103:83:-;15421:41;;;24239:1:169;14421:41:83;14452:2;14421:41;1553:48775:165;837:15:87;1553:48775:165;;;24239:1:169;14421:41:83;15370:103;15421:41;;;24239:1:169;15421:41:83;15452:2;15421:41;1553:48775:165;24269:12:169;1553:48775:165;;;24239:1:169;15421:41:83;1553:48775:165;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;2288:3;;;1553:48775;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1553:48775:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31658:456:169;-1:-1:-1;;;;;31658:456:169;;1553:48775:165;;;;31967:24:169;;;;:::i;:::-;1553:48775:165;;;;;;32079:5:169;1553:48775:165;;32092:1:169;1553:48775:165;31658:456:169;:::o;1553:48775:165:-;;-1:-1:-1;;;;;1553:48775:165;;;;;;;:::o;863:809:22:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;32299:179:169:-;32451:16;32413:34;32412:59;32299:179;1553:48775:165;32418:29:169;;;1553:48775:165;;;;32413:34:169;;:::i;:::-;32451:16;;1553:48775:165;32412:59:169;;:::i;29115:322::-;29235:50;29269:15;29235:50;;:::i;:::-;29269:15;;;29308:37;;29301:44;:::o;29231:200::-;29383:37;;29376:44;:::o;29574:312::-;;29697:37;29574:312;29697:37;;:::i;:::-;;;;29757;;29750:44;:::o;29693:187::-;29832:37;;29825:44;:::o;7001:1787:20:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:20;;;8025:68;;2933:1:27;2929:5;4026:14:20;1553:48775:165;4010:31:20;;;:::i;:::-;1553:48775:165;425:3:20;1553:48775:165;;;4003:1:27;2933;2929:5;;1553:48775:165;425:3:20;4492:84:22;;;4093:83;1553:48775:165;4093:83:22;;;4003:1:27;1553:48775:165;;;4492:84:22;;;1553:48775:165;4093:83:22;;;;;1553:48775:165;4093:83:22;;;1581:66:20;1553:48775:165;4093:83:22;;;-1:-1:-1;;;1553:48775:165;4093:83:22;;;531:131:25;;1553:48775:165;4093:83:22;;;;;;4003:1:27;1553:48775:165;4492:84:22;;2933:1:27;4492:84:22;;1553:48775:165;531:131:25;;5696:10:20;;;4093:83:22;;4492:84;1553:48775:165;1145:66:27;;531:131:25;;6084:3:20;1553:48775:165;-1:-1:-1;;;;;1553:48775:165;;;6084:3:20;1553:48775:165;;6062:44:20;1145:66:27;;;1860::20;1553:48775:165;1860:66:20;;1553:48775:165;6037:2:20;1553:48775:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1553:48775:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1553:48775:165;4093:83:22;;1553:48775:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1553:48775:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1553:48775:165;1640:140:24;3543:209:25;1553:48775:165;3543:209:25;648:2:20;3543:209:25;1553:48775:165;;;;;6037:2:20;1553:48775:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1553:48775:165;8070:12:20;:::o;4016:191:40:-;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1553:48775:165;;4107:92:40;;;;1553:48775:165;1959:95:40;1553:48775:165;;;1959:95:40;;1553:48775:165;1959:95:40;;;1553:48775:165;4170:13:40;1959:95;;;1553:48775:165;4193:4:40;1959:95;;;1553:48775:165;1959:95:40;4107:92;;;;;;:::i;7082:141:30:-;1553:48775:165;-1:-1:-1;;;;;;;;;;;1553:48775:165;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;33233:467:169;1553:48775:165;;:::i;:::-;-1:-1:-1;33537:51:169;;;1553:48775:165;33655:27:169;;;1553:48775:165;;;;;;;;33608:15:169;;-1:-1:-1;;;;;1553:48775:165;;;;:::i;:::-;;;;:::i;:::-;;;33396:297:169;;;2288:3:165;33608:15:169;1553:48775:165;:::i;:::-;;33396:297:169;;1553:48775:165;33396:297:169;;;1553:48775:165;33233:467:169;:::o;5203:1551:77:-;;;6283:66;6270:79;;6266:164;;1553:48775:165;;;;;;-1:-1:-1;1553:48775:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1553:48775:165;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1553:48775:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1553:48775:165;7462:38:77;;1553:48775:165;;7523:23:77;;;7375:20;7523:23;1553:48775:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1553:48775:165;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1553:48775:165;;;7375:20:77;7763:32;30293:863:169;;30539:54;30461;;;1553:48775:165;30539:54:169;;1553:48775:165;30667:10:169;;;1553:48775:165;;30738:9:169;;;;30770;;;;;30802;;;30903:14;;;;;30293:863;1553:48775:165;;;31119:30:169;;;31112:37;;30293:863;:::o;31119:30::-;31134:14;;30293:863;-1:-1:-1;30293:863:169:o;1553:48775:165:-;;;;-1:-1:-1;1553:48775:165;;-1:-1:-1;1553:48775:165;30903:14:169;;;;;1553:48775:165;;;;-1:-1:-1;1553:48775:165;;-1:-1:-1;1553:48775:165;2129:778:77;1553:48775:165;;;2129:778:77;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:77;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;1767:250:27:-;-1:-1:-1;;912:66:27;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:27;;1948:15;:62;1767:250;:::o;6928:687:40:-;1553:48775:165;;:::i;:::-;;;;7100:22:40;;;;1553:48775:165;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1553:48775:165;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1553:48775:165;;:::i;:::-;;;;8017:25:40;;;;1553:48775:165;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1553:48775:165;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1553:48775:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1553:48775:165;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1553:48775:165;;;;4933:24:66;1553:48775:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":10459,"length":32},{"start":10606,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","bumpProtocolVersion()":"85dd663d","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"1622441d","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":"ee32004f","createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":"0d91bf2a","eip712Domain()":"84b0196e","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","nonces(address)":"7ecebe00","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","protocolVersion()":"2ae9c600","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":"8c4ace6a","requestCodeValidationBaseFee()":"188509e9","requestCodeValidationExtraFee()":"f1ef31ec","requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":"f0fd702a","setMirror(address)":"3d43b418","setRequestCodeValidationBaseFee(uint256)":"11bec80d","setRequestCodeValidationExtraFee(uint256)":"0b9737ce","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"providedBlobHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"expectedBlobHash\",\"type\":\"bytes32\"}],\"name\":\"InvalidBlobHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"providedLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedLength\",\"type\":\"uint256\"}],\"name\":\"InvalidBlobHashesLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requester\",\"type\":\"address\"}],\"name\":\"InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"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\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferFromFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"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\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"ethBlockHash\",\"type\":\"bytes32\"}],\"name\":\"EBCommitted\",\"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\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"MBCommitted\",\"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\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"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\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProtocolVersion\",\"type\":\"uint256\"}],\"name\":\"ProtocolVersionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bumpProtocolVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.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\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.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 Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"lastAdvancedEthBlock\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"hasAggregatedPublicKey\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"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\":\"createProgramWithAbiInterfaceAndExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"_initialExecutableBalance\",\"type\":\"uint128\"},{\"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\":\"createProgramWithExecutableBalance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"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\":\"protocolVersion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"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\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestCodeValidationExtraFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_requester\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"_blobHashes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"_deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"_v1\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r1\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s1\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_v2\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"_r2\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_s2\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidationOnBehalf\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newBaseFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newExtraFee\",\"type\":\"uint256\"}],\"name\":\"setRequestCodeValidationExtraFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"maxValidators\",\"type\":\"uint16\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationBaseFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestCodeValidationExtraFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"protocolVersion\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BlobNotFound()\":[{\"details\":\"Thrown when the tx is not in EIP-4844/EIP-7594 format, so it doesn't have blobhashes.\"}],\"CodeAlreadyOnValidationOrValidated()\":[{\"details\":\"Thrown when the code is already on validation or validated.\"}],\"CodeNotValidated()\":[{\"details\":\"Thrown when the code is not validated and someone tries to create program with it.\"}],\"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.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"EraDurationTooShort()\":[{\"details\":\"Thrown when the era duration is too short (era duration must be greater than election duration).\"}],\"ErasTimestampMustNotBeEqual()\":[{\"details\":\"Thrown when the timestamp of an era is equal to the timestamp of the previous era. Should never happen, because the implementation.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"ExpiredSignature(uint256)\":[{\"details\":\"Thrown when deadline for code validation request has expired.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"GenesisHashAlreadySet()\":[{\"details\":\"Thrown when the genesis hash is already set by someone else.\"}],\"GenesisHashNotFound()\":[{\"details\":\"Thrown when the genesis hash is not found from previous blocks. There is 256 blocks lookback for `blockhash` opcode, so if the genesis block is too old, it may not be found.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidBlobHash(uint256,bytes32,bytes32)\":[{\"details\":\"Thrown when the blobhash for code validation request is invalid.\"}],\"InvalidBlobHashesLength(uint256,uint256)\":[{\"details\":\"Thrown when the provided blob hashes length doesn't match the actual blob hashes length in transaction.\"}],\"InvalidElectionDuration()\":[{\"details\":\"Thrown when an invalid election duration is provided (must be greater than 0).\"}],\"InvalidFrostSignatureCount()\":[{\"details\":\"Thrown when the number of FROST signatures is invalid.\"}],\"InvalidFrostSignatureLength()\":[{\"details\":\"Thrown when the length of a FROST signature is invalid, it must be exactly 96 bytes.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidSigner(address,address)\":[{\"details\":\"Thrown when the signer of the code validation request is not the requester.\"}],\"InvalidTimestamp()\":[{\"details\":\"Thrown when an invalid block.timestamp is provided (must be greater than 0).\"}],\"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.\"}],\"RouterGenesisHashNotInitialized()\":[{\"details\":\"Thrown when the router's genesis hash is not initialized (no one called `lookupGenesisHash` yet).\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"TimestampInFuture()\":[{\"details\":\"Thrown when the timestamp is in the future.\"}],\"TimestampOlderThanPreviousEra()\":[{\"details\":\"Thrown when the timestamp is older than the previous era.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"ValidationBeforeGenesis()\":[{\"details\":\"Thrown when signature validation is attempted before the genesis block.\"}],\"ValidationDelayTooBig()\":[{\"details\":\"Thrown when the validation delay is too big.\"}],\"ValidatorsNotFoundForTimestamp()\":[{\"details\":\"Thrown when no validators are found for a given timestamp. Should never happen, because the implementation.\"}]},\"events\":{\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch hash (`keccak256` algorithm), see `Gear.batchCommitmentHash(...)`.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, one the client side it's calculated as `gprimitives::CodeId::generate(wasm_code)`.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"EBCommitted(bytes32)\":{\"details\":\"Lets observers update `last_committed_eb` so the producer can decide when to issue a checkpoint batch even with no transitions.\",\"params\":{\"ethBlockHash\":\"Latest Ethereum block hash whose events were folded into the chain commitment's MB head.\"}},\"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.\"},\"MBCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\"}},\"ProtocolVersionChanged(uint256)\":{\"details\":\"This is an *informational* event, signaling that the protocol version has been changed.\",\"params\":{\"newProtocolVersion\":\"The new version of the protocol.\"}},\"StorageSlotChanged(bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\",\"params\":{\"slot\":\"The new storage slot.\"}},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\",\"returns\":{\"_0\":\"domainSeparator The domain separator.\"}},\"areValidators(address[])\":{\"details\":\"Checks if the given addresses are all validators.\",\"returns\":{\"_0\":\"areValidators `true` if all addresses are validators, `false` otherwise.\"}},\"bumpProtocolVersion()\":{\"details\":\"Bumps the version of the protocol, used by nodes. Emits `ProtocolVersionChanged` event.\"},\"codeState(bytes32)\":{\"details\":\"Returns the state of code.\",\"returns\":{\"_0\":\"codeState The state of the code.\"}},\"codesStates(bytes32[])\":{\"details\":\"Returns the states of multiple codes.\",\"returns\":{\"_0\":\"codesStates The states of the codes.\"}},\"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])\":{\"details\":\"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\",\"params\":{\"_batch\":\"The batch commitment data.\",\"_signatureType\":\"The type of signature to validate.\",\"_signatures\":\"The signatures for the batch commitment.\"}},\"computeSettings()\":{\"details\":\"Returns the computation settings.\",\"returns\":{\"_0\":\"computeSettings The computation settings.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createProgram(bytes32,bytes32,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterface(bytes32,bytes32,address,address)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_salt\":\"The salt for the program creation.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \\\"Solidity ABI Interface\\\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_abiInterface\":\"The ABI interface address for the program.\",\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \\\"Solidity ABI Interface\\\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.\",\"params\":{\"_codeId\":\"The code ID of the program to create. Must be in `CodeState.Validated` state.\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_initialExecutableBalance\":\"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\",\"_overrideInitializer\":\"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_salt\":\"The salt for the program creation.\",\"_v\":\"ECDSA signature parameter.\"},\"returns\":{\"_0\":\"mirror The address of the created program (`Mirror`).\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"genesisBlockHash()\":{\"details\":\"Returns the hash of the genesis block.\",\"returns\":{\"_0\":\"genesisBlockHash The hash of the genesis block.\"}},\"genesisTimestamp()\":{\"details\":\"Returns the timestamp of the genesis block.\",\"returns\":{\"_0\":\"genesisTimestamp The timestamp of the genesis block.\"}},\"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])\":{\"details\":\"Initializes the `Router` with the given parameters.\",\"params\":{\"_aggregatedPublicKey\":\"The optional aggregated public key of the initial validators. Will be used in future.\",\"_electionDuration\":\"The duration of an election in seconds.\",\"_eraDuration\":\"The duration of an era in seconds.\",\"_middleware\":\"The address of the middleware contract.\",\"_mirror\":\"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\",\"_owner\":\"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\",\"_validationDelay\":\"The delay before validators can start validating in seconds.\",\"_validators\":\"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.\",\"_verifiableSecretSharingCommitment\":\"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\",\"_wrappedVara\":\"The address of the `WrappedVara` (WVARA) ERC20 token contract.\"}},\"isValidator(address)\":{\"details\":\"Checks if the given address is a validator.\",\"returns\":{\"_0\":\"isValidator `true` if the address is a validator, `false` otherwise.\"}},\"latestCommittedBatchHash()\":{\"details\":\"Returns the hash of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchHash The hash of the latest committed batch.\"}},\"latestCommittedBatchTimestamp()\":{\"details\":\"Returns the timestamp of the latest committed batch.\",\"returns\":{\"_0\":\"latestCommittedBatchTimestamp The timestamp of the latest committed batch.\"}},\"lookupGenesisHash()\":{\"details\":\"Looks up the genesis hash from previous blocks.\"},\"middleware()\":{\"details\":\"Returns the address of the middleware implementation.\",\"returns\":{\"_0\":\"middleware The address of the middleware implementation.\"}},\"mirrorImpl()\":{\"details\":\"Returns the address of the mirror implementation.\",\"returns\":{\"_0\":\"mirrorImpl The address of the mirror implementation.\"}},\"nonces(address)\":{\"details\":\"Returns the next unused nonce for an address.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Pauses the contract.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\",\"returns\":{\"_0\":\"isPaused `true` if the contract is paused, `false` otherwise.\"}},\"programCodeId(address)\":{\"details\":\"Returns the code ID of the given program.\",\"returns\":{\"_0\":\"codeId The code ID of the program.\"}},\"programsCodeIds(address[])\":{\"details\":\"Returns the code IDs of the given programs.\",\"returns\":{\"_0\":\"codesIds The code IDs of the programs.\"}},\"programsCount()\":{\"details\":\"Returns the count of programs.\",\"returns\":{\"_0\":\"programsCount The count of programs.\"}},\"protocolVersion()\":{\"details\":\"Returns the current protocol version.\",\"returns\":{\"_0\":\"protocolVersion The current protocol version.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\",\"details\":\"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!\"},\"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.\"},\"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.\",\"params\":{\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r\":\"ECDSA signature parameter.\",\"_s\":\"ECDSA signature parameter.\",\"_v\":\"ECDSA signature parameter.\"}},\"requestCodeValidationBaseFee()\":{\"details\":\"Returns the base fee for requesting code validation in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationBaseFee The base fee for requesting code validation.\"}},\"requestCodeValidationExtraFee()\":{\"details\":\"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"returns\":{\"_0\":\"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else.\"}},\"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)\":{\"details\":\"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.\",\"params\":{\"_blobHashes\":\"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.\",\"_codeId\":\"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\",\"_deadline\":\"Deadline for the transaction to be executed.\",\"_r1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_r2\":\"ECDSA signature parameter (for permit).\",\"_requester\":\"The address of the requester on behalf of whom the code validation is requested.\",\"_s1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_s2\":\"ECDSA signature parameter (for permit).\",\"_v1\":\"ECDSA signature parameter (for requestCodeValidation).\",\"_v2\":\"ECDSA signature parameter (for permit).\"}},\"setMirror(address)\":{\"details\":\"Sets the `Mirror` implementation address.\",\"params\":{\"newMirror\":\"The new mirror implementation address.\"}},\"setRequestCodeValidationBaseFee(uint256)\":{\"details\":\"Sets the base fee for requesting code validation in WVARA ERC20 token.\",\"params\":{\"newBaseFee\":\"The new base fee for requesting code validation.\"}},\"setRequestCodeValidationExtraFee(uint256)\":{\"details\":\"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\",\"params\":{\"newExtraFee\":\"The new extra fee for requesting code validation on behalf of someone else.\"}},\"signingThresholdFraction()\":{\"details\":\"Returns the signing threshold fraction.\",\"returns\":{\"thresholdDenominator\":\"The denominator of the signing threshold fraction.\",\"thresholdNumerator\":\"The numerator of the signing threshold fraction.\"}},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\",\"returns\":{\"_0\":\"storageView The storage view of the contract storage.\"}},\"timelines()\":{\"details\":\"Returns the timelines.\",\"returns\":{\"_0\":\"timelines The timelines.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Unpauses the contract.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"validatedCodesCount()\":{\"details\":\"Returns the count of validated codes.\",\"returns\":{\"_0\":\"validatedCodesCount The count of validated codes.\"}},\"validators()\":{\"details\":\"Returns the list of current validators.\",\"returns\":{\"_0\":\"validators The list of current validators.\"}},\"validatorsAggregatedPublicKey()\":{\"details\":\"Returns the aggregated public key of the current validators.\",\"returns\":{\"_0\":\"validatorsAggregatedPublicKey The aggregated public key of the current validators.\"}},\"validatorsCount()\":{\"details\":\"Returns the count of current validators.\",\"returns\":{\"_0\":\"validatorsCount The count of current validators.\"}},\"validatorsThreshold()\":{\"details\":\"Returns the threshold number of validators required for a valid signature.\",\"returns\":{\"_0\":\"threshold The threshold number of validators required for a valid signature.\"}},\"validatorsVerifiableSecretSharingCommitment()\":{\"details\":\"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\",\"returns\":{\"_0\":\"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators.\"}},\"wrappedVara()\":{\"details\":\"Returns the address of the wrapped Vara implementation.\",\"returns\":{\"_0\":\"wrappedVara The address of the wrapped Vara implementation.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its `Gear.CodeState` changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"EBCommitted(bytes32)\":{\"notice\":\"Emitted when a chain commitment carrying a `lastAdvancedEthBlock` lands on-chain.\"},\"MBCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"ProtocolVersionChanged(uint256)\":{\"notice\":\"Emitted when the protocol version is changed.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957\",\"dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd\",\"dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b\",\"dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5\",\"dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232\",\"dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6\",\"dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS\"]},\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"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/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520\",\"dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570\",\"dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009\",\"dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693\",\"dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ\"]},\"src/Router.sol\":{\"keccak256\":\"0x7c85085eaf87280e0825ea29f57b1c62d85401c01f417fd72f07e3575edd5832\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://cc183b81da002a9bd8247019e703340bd16171bdee63ff0d7b0233a1ce48c912\",\"dweb:/ipfs/QmcDK8oeQG5gWnssRDMQbDLahrX3Cyi2KGKo4jGBJUqiUz\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3\",\"dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b\",\"dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded\",\"dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389\",\"dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"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":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ExpiredSignature"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"bytes32","name":"providedBlobHash","type":"bytes32"},{"internalType":"bytes32","name":"expectedBlobHash","type":"bytes32"}],"type":"error","name":"InvalidBlobHash"},{"inputs":[{"internalType":"uint256","name":"providedLength","type":"uint256"},{"internalType":"uint256","name":"expectedLength","type":"uint256"}],"type":"error","name":"InvalidBlobHashesLength"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"requester","type":"address"}],"type":"error","name":"InvalidSigner"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"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":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"TransferFromFailed"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","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}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"ethBlockHash","type":"bytes32","indexed":false}],"type":"event","name":"EBCommitted","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":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"MBCommitted","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":"account","type":"address","indexed":false}],"type":"event","name":"Paused","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":[{"internalType":"uint256","name":"newProtocolVersion","type":"uint256","indexed":false}],"type":"event","name":"ProtocolVersionChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"bumpProtocolVersion"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.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 Gear.Message[]","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 Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]},{"internalType":"bytes32","name":"head","type":"bytes32"},{"internalType":"bytes32","name":"lastAdvancedEthBlock","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"bool","name":"hasAggregatedPublicKey","type":"bool"},{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"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":"createProgramWithAbiInterfaceAndExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"uint128","name":"_initialExecutableBalance","type":"uint128"},{"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":"createProgramWithExecutableBalance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"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":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"protocolVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"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":"requestCodeValidation"},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"requestCodeValidationExtraFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_requester","type":"address"},{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32[]","name":"_blobHashes","type":"bytes32[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"uint8","name":"_v1","type":"uint8"},{"internalType":"bytes32","name":"_r1","type":"bytes32"},{"internalType":"bytes32","name":"_s1","type":"bytes32"},{"internalType":"uint8","name":"_v2","type":"uint8"},{"internalType":"bytes32","name":"_r2","type":"bytes32"},{"internalType":"bytes32","name":"_s2","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidationOnBehalf"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[{"internalType":"uint256","name":"newBaseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationBaseFee"},{"inputs":[{"internalType":"uint256","name":"newExtraFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setRequestCodeValidationExtraFee"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"},{"internalType":"uint16","name":"maxValidators","type":"uint16"},{"internalType":"uint256","name":"requestCodeValidationBaseFee","type":"uint256"},{"internalType":"uint256","name":"requestCodeValidationExtraFee","type":"uint256"},{"internalType":"uint256","name":"protocolVersion","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"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":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.","returns":{"_0":"domainSeparator The domain separator."}},"areValidators(address[])":{"details":"Checks if the given addresses are all validators.","returns":{"_0":"areValidators `true` if all addresses are validators, `false` otherwise."}},"bumpProtocolVersion()":{"details":"Bumps the version of the protocol, used by nodes. Emits `ProtocolVersionChanged` event."},"codeState(bytes32)":{"details":"Returns the state of code.","returns":{"_0":"codeState The state of the code."}},"codesStates(bytes32[])":{"details":"Returns the states of multiple codes.","returns":{"_0":"codesStates The states of the codes."}},"commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32,bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],(bool,(uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":{"details":"Commits new batch of changes to `Router` state. `CodeGotValidated` event is emitted for each code in commitment. `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.","params":{"_batch":"The batch commitment data.","_signatureType":"The type of signature to validate.","_signatures":"The signatures for the batch commitment."}},"computeSettings()":{"details":"Returns the computation settings.","returns":{"_0":"computeSettings The computation settings."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createProgram(bytes32,bytes32,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, and initializer. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterface(bytes32,bytes32,address,address)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_salt":"The salt for the program creation."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithAbiInterfaceAndExecutableBalance(bytes32,bytes32,address,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support, so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_abiInterface":"The ABI interface address for the program.","_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"createProgramWithExecutableBalance(bytes32,bytes32,address,uint128,uint256,uint8,bytes32,bytes32)":{"details":"Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance in WVARA ERC20 token. Note that the program creation is deterministic, so if you try to create program with the same code ID and salt, you will get the same program address. Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support, so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events. As result of execution, the `ProgramCreated` event will be emitted.","params":{"_codeId":"The code ID of the program to create. Must be in `CodeState.Validated` state.","_deadline":"Deadline for the transaction to be executed.","_initialExecutableBalance":"The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.","_overrideInitializer":"The initializer address for the program that can send the first (init) message to the program. If set to `address(0)`, `msg.sender` will be used as the initializer.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_salt":"The salt for the program creation.","_v":"ECDSA signature parameter."},"returns":{"_0":"mirror The address of the created program (`Mirror`)."}},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"genesisBlockHash()":{"details":"Returns the hash of the genesis block.","returns":{"_0":"genesisBlockHash The hash of the genesis block."}},"genesisTimestamp()":{"details":"Returns the timestamp of the genesis block.","returns":{"_0":"genesisTimestamp The timestamp of the genesis block."}},"initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":{"details":"Initializes the `Router` with the given parameters.","params":{"_aggregatedPublicKey":"The optional aggregated public key of the initial validators. Will be used in future.","_electionDuration":"The duration of an election in seconds.","_eraDuration":"The duration of an era in seconds.","_middleware":"The address of the middleware contract.","_mirror":"The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.","_owner":"The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.","_validationDelay":"The delay before validators can start validating in seconds.","_validators":"The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures, so the list of validators is used for signature verification.","_verifiableSecretSharingCommitment":"The optional verifiable secret sharing commitment of the initial validators. Will be used in future.","_wrappedVara":"The address of the `WrappedVara` (WVARA) ERC20 token contract."}},"isValidator(address)":{"details":"Checks if the given address is a validator.","returns":{"_0":"isValidator `true` if the address is a validator, `false` otherwise."}},"latestCommittedBatchHash()":{"details":"Returns the hash of the latest committed batch.","returns":{"_0":"latestCommittedBatchHash The hash of the latest committed batch."}},"latestCommittedBatchTimestamp()":{"details":"Returns the timestamp of the latest committed batch.","returns":{"_0":"latestCommittedBatchTimestamp The timestamp of the latest committed batch."}},"lookupGenesisHash()":{"details":"Looks up the genesis hash from previous blocks."},"middleware()":{"details":"Returns the address of the middleware implementation.","returns":{"_0":"middleware The address of the middleware implementation."}},"mirrorImpl()":{"details":"Returns the address of the mirror implementation.","returns":{"_0":"mirrorImpl The address of the mirror implementation."}},"nonces(address)":{"details":"Returns the next unused nonce for an address."},"owner()":{"details":"Returns the address of the current owner."},"pause()":{"details":"Pauses the contract."},"paused()":{"details":"Returns true if the contract is paused, and false otherwise.","returns":{"_0":"isPaused `true` if the contract is paused, `false` otherwise."}},"programCodeId(address)":{"details":"Returns the code ID of the given program.","returns":{"_0":"codeId The code ID of the program."}},"programsCodeIds(address[])":{"details":"Returns the code IDs of the given programs.","returns":{"_0":"codesIds The code IDs of the programs."}},"programsCount()":{"details":"Returns the count of programs.","returns":{"_0":"programsCount The count of programs."}},"protocolVersion()":{"details":"Returns the current protocol version.","returns":{"_0":"protocolVersion The current protocol version."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":"","details":"Reinitializes the `Router` to set up new storage layout. This function is intended to be called during an upgrade/wipe and can contain any logic. NOTE: Don't forget to bump `reinitializer(version)` in modifier!"},"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."},"requestCodeValidation(bytes32,uint256,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()` in the WVARA ERC20 token.","params":{"_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r":"ECDSA signature parameter.","_s":"ECDSA signature parameter.","_v":"ECDSA signature parameter."}},"requestCodeValidationBaseFee()":{"details":"Returns the base fee for requesting code validation in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationBaseFee The base fee for requesting code validation."}},"requestCodeValidationExtraFee()":{"details":"Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","returns":{"_0":"requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."}},"requestCodeValidationOnBehalf(address,bytes32,bytes32[],uint256,uint8,bytes32,bytes32,uint8,bytes32,bytes32)":{"details":"Requests code validation for the given code ID on behalf of someone else. This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar attached to it containing WASM bytecode. On EVM, we can only verify that there was at least 1 blobhash in a transaction. Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()` in the WVARA ERC20 token.","params":{"_blobHashes":"The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`. This is needed to verify that the transaction has expected blobs attached.","_codeId":"The expected code ID for which the validation is requested. It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).","_deadline":"Deadline for the transaction to be executed.","_r1":"ECDSA signature parameter (for requestCodeValidation).","_r2":"ECDSA signature parameter (for permit).","_requester":"The address of the requester on behalf of whom the code validation is requested.","_s1":"ECDSA signature parameter (for requestCodeValidation).","_s2":"ECDSA signature parameter (for permit).","_v1":"ECDSA signature parameter (for requestCodeValidation).","_v2":"ECDSA signature parameter (for permit)."}},"setMirror(address)":{"details":"Sets the `Mirror` implementation address.","params":{"newMirror":"The new mirror implementation address."}},"setRequestCodeValidationBaseFee(uint256)":{"details":"Sets the base fee for requesting code validation in WVARA ERC20 token.","params":{"newBaseFee":"The new base fee for requesting code validation."}},"setRequestCodeValidationExtraFee(uint256)":{"details":"Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.","params":{"newExtraFee":"The new extra fee for requesting code validation on behalf of someone else."}},"signingThresholdFraction()":{"details":"Returns the signing threshold fraction.","returns":{"thresholdDenominator":"The denominator of the signing threshold fraction.","thresholdNumerator":"The numerator of the signing threshold fraction."}},"storageView()":{"details":"Returns the storage view of the contract storage.","returns":{"_0":"storageView The storage view of the contract storage."}},"timelines()":{"details":"Returns the timelines.","returns":{"_0":"timelines The timelines."}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unpause()":{"details":"Unpauses the contract."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"validatedCodesCount()":{"details":"Returns the count of validated codes.","returns":{"_0":"validatedCodesCount The count of validated codes."}},"validators()":{"details":"Returns the list of current validators.","returns":{"_0":"validators The list of current validators."}},"validatorsAggregatedPublicKey()":{"details":"Returns the aggregated public key of the current validators.","returns":{"_0":"validatorsAggregatedPublicKey The aggregated public key of the current validators."}},"validatorsCount()":{"details":"Returns the count of current validators.","returns":{"_0":"validatorsCount The count of current validators."}},"validatorsThreshold()":{"details":"Returns the threshold number of validators required for a valid signature.","returns":{"_0":"threshold The threshold number of validators required for a valid signature."}},"validatorsVerifiableSecretSharingCommitment()":{"details":"Returns the verifiable secret sharing commitment of the current validators. This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct. See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.","returns":{"_0":"validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."}},"wrappedVara()":{"details":"Returns the address of the wrapped Vara implementation.","returns":{"_0":"wrappedVara The address of the wrapped Vara implementation."}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0xcb8beff7a3ca3a2ff171fabec46382d6ebf40cc99f9e2b68b59f625026ec1196","urls":["bzz-raw://1bfeeeb4a231cb269b0a9d04e87b2a818b849ba3f0084e0add73886e012aa957","dweb:/ipfs/QmV4661Y45EELnYy5QuKJTcDzefZzZqqH5xhnJzRM7W8oZ"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xbc20f6a538274fde52bd2ee506beb4cbe198852c102f59ecb9f35980b39f30b9","urls":["bzz-raw://086e0a186d8a1fe9ba896db6ab70746bcc8f0e9ebcf501f2f0746cfd99729fdd","dweb:/ipfs/QmVYhsZRahTX7D1HAAhFnHGdTKHj9UfWpR6uWpbNJp7fx2"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0xfb8c0a14626a6b53b4b9d27f39ca982b17072f8bff98e8b685d2730b07bb187b","urls":["bzz-raw://52cc84c8a0b8c4ffd88f04eda4c7dafb7eeac5113dd55cd845bd0a614524627b","dweb:/ipfs/QmNtW5rtnMZFRdsUsyc7zqiymUEWyCHNhn1j8Rr4Xp6wFw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0xd2cade53d550fde5afb7540f9456acc2e65afad805c7c9113ae2102e52738350","urls":["bzz-raw://ff37b2b2b7022ed9927c051b5b007f062fdbdbf11e20d9d3a0302ca6a930f8e5","dweb:/ipfs/QmfXEdUsCzLr27cQnC5RxgicDPYXqMzoewcQ7EkQSym9Kw"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x30c38d0522e9aded84f3f7b8738a09371f592533446e118b80d7e69a7220ab82","urls":["bzz-raw://4a5fbf62e643b87e278d18bfcecb8ccebe472d24a1d2ed272693cd4ba40b1232","dweb:/ipfs/QmSktUWcadUp6sLyfmX7rhLRjv2hHo4JdWvaN5XKRCatJM"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x75a13b1ba0a88d89da22b9682bbec01ff039b067143a0e419e9f93c268ecf1f0","urls":["bzz-raw://b9f5c0e7f7c74b20b288d18bc8a91555ebf2cd659918b02390606d8f1ba1eda6","dweb:/ipfs/QmYfQJqP4VFvVDzYnjtMJBxXwyrJbMo9rdqxcygHC85NSS"],"license":"MIT"},"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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"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/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x38bd590dd635ae767b1e01b9854ca5c6a83ee1b742232d0362d1f3601bea45a8","urls":["bzz-raw://2b4bfa62a306473b343d346ee4e514fd691f0066a5be6a1ae6b7aaf6e7682520","dweb:/ipfs/QmWeWcX5LBq3xfLnk8j3ebU7HLYUhx8TqtYGbpStCaevUZ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IMirror.sol":{"keccak256":"0xf99683eb2f5d163c845035ce5622740beaf83faada37117364ca5a12028ad925","urls":["bzz-raw://6633e27c5d83f287d587eab809b2ccd74d0b6f2328f4f48000a69a50646e9570","dweb:/ipfs/QmdhKuPL1VhK5wkwid4d6w61UB7ufirrTN6cHULwyTjCHP"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IRouter.sol":{"keccak256":"0x27de010f02bc60b56cf79a7636e731522f17d30fab3018eaaae1d119355e89bc","urls":["bzz-raw://4530cbc4fc3760bc41acd6a40ad95325a0dc62b204e383ed0b70b2e8c4f2a009","dweb:/ipfs/QmVtbtML2kT3vuZY5xkdED1AonCBDxwCRBjfAY3PZAezNg"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/IWrappedVara.sol":{"keccak256":"0xc3b9a28bb10af2e04bd98182230f4035be91a46b2569aed5916944cf035669db","urls":["bzz-raw://5d41c44412c122ff53bc7a10fa1e010e92df70413b97c8663aaa979e2d31d693","dweb:/ipfs/QmYJnwuJb8JeBVa29XqcSD58svzfTMmC2E1Rb9apxTvzMJ"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/Router.sol":{"keccak256":"0x7c85085eaf87280e0825ea29f57b1c62d85401c01f417fd72f07e3575edd5832","urls":["bzz-raw://cc183b81da002a9bd8247019e703340bd16171bdee63ff0d7b0233a1ce48c912","dweb:/ipfs/QmcDK8oeQG5gWnssRDMQbDLahrX3Cyi2KGKo4jGBJUqiUz"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Clones.sol":{"keccak256":"0xedec50e3e6f10f016b8f8ea91bc63f69dffe8287e755778a8ef980f51206d1d7","urls":["bzz-raw://789789391f384e4b4925e49818ddac6f19b70f01d90befdeac4e2c69e2926bc3","dweb:/ipfs/QmUgyWxAHKmza1mSQnkxFroBxsnzchUntEjCqsrJfK9SrT"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/ClonesSmall.sol":{"keccak256":"0x453f0262cf06f368b969ea3dbca328ee7fae1c8b73fdbc35ffe8252142d62b70","urls":["bzz-raw://d8237577660ba34d8105a6ec84a699059357471364bd4efdba10195ff93f7d4b","dweb:/ipfs/QmRAky7bp7z3kgd56YwSdU2pRskoPryhQwaR5sCceSC9Lv"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/Gear.sol":{"keccak256":"0x984f8997708ec180ffdd1bd923e86b5ab99b0b1b87984078309f927a1d927b45","urls":["bzz-raw://95777eeeda737e555cda2e3ce0aafaebf18e6909fc38274689e54757e12f3ded","dweb:/ipfs/QmPNYixYTF1vTGXY3TqXfBZHnagVwNggFigkjea3tGMfHA"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"src/libraries/SSTORE2.sol":{"keccak256":"0xd280ac6c1bf76b0996b061139591884ea767f2fa97c103a4d6abb38c449c2cdd","urls":["bzz-raw://59271a683dc86fde6556b000155742076227a490581f5b38d80bdf7bfe593389","dweb:/ipfs/QmWGXRjg1sDa89XHpTXMT45iJazwc3S5qA8Aio4hbqhhmm"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":82433,"exportedSymbols":{"Clones":[82828],"ClonesSmall":[82912],"ECDSA":[51038],"EIP712Upgradeable":[44416],"FROST":[40965],"Gear":[84181],"Hashes":[41483],"IMiddleware":[74131],"IMirror":[74395],"IRouter":[75008],"IWrappedVara":[75024],"Memory":[41257],"NoncesUpgradeable":[43698],"OwnableUpgradeable":[42322],"PausableUpgradeable":[43858],"ReentrancyGuardTransientUpgradeable":[43943],"Router":[82432],"SSTORE2":[84637],"SlotDerivation":[48965],"StorageSlot":[49089],"UUPSUpgradeable":[46243]},"nodeType":"SourceUnit","src":"74:50255:165","nodes":[{"id":79447,"nodeType":"PragmaDirective","src":"74:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":79449,"nodeType":"ImportDirective","src":"100:101:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":79448,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79451,"nodeType":"ImportDirective","src":"202:98:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":43699,"symbolAliases":[{"foreign":{"id":79450,"name":"NoncesUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43698,"src":"210:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79453,"nodeType":"ImportDirective","src":"301:102:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":43859,"symbolAliases":[{"foreign":{"id":79452,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43858,"src":"309:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79455,"nodeType":"ImportDirective","src":"404:140:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":43944,"symbolAliases":[{"foreign":{"id":79454,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43943,"src":"417:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79457,"nodeType":"ImportDirective","src":"545:111:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":44417,"symbolAliases":[{"foreign":{"id":79456,"name":"EIP712Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44416,"src":"553:17:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79459,"nodeType":"ImportDirective","src":"657:88:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":79458,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"665:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79461,"nodeType":"ImportDirective","src":"746:80:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":48966,"symbolAliases":[{"foreign":{"id":79460,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"754:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79463,"nodeType":"ImportDirective","src":"827:74:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":49090,"symbolAliases":[{"foreign":{"id":79462,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"835:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79465,"nodeType":"ImportDirective","src":"902:75:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":51039,"symbolAliases":[{"foreign":{"id":79464,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"910:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79467,"nodeType":"ImportDirective","src":"978:52:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":40966,"symbolAliases":[{"foreign":{"id":79466,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"986:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79469,"nodeType":"ImportDirective","src":"1031:60:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":41258,"symbolAliases":[{"foreign":{"id":79468,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"1039:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79471,"nodeType":"ImportDirective","src":"1092:73:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":41484,"symbolAliases":[{"foreign":{"id":79470,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"1100:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79473,"nodeType":"ImportDirective","src":"1166:48:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":74132,"symbolAliases":[{"foreign":{"id":79472,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"1174:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79475,"nodeType":"ImportDirective","src":"1215:40:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":74396,"symbolAliases":[{"foreign":{"id":79474,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"1223:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79477,"nodeType":"ImportDirective","src":"1256:40:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":75009,"symbolAliases":[{"foreign":{"id":79476,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75008,"src":"1264:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79479,"nodeType":"ImportDirective","src":"1297:50:165","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":75025,"symbolAliases":[{"foreign":{"id":79478,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"1305:12:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79481,"nodeType":"ImportDirective","src":"1348:48:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":82829,"symbolAliases":[{"foreign":{"id":79480,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82828,"src":"1356:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79483,"nodeType":"ImportDirective","src":"1397:58:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":82913,"symbolAliases":[{"foreign":{"id":79482,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82912,"src":"1405:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79485,"nodeType":"ImportDirective","src":"1456:44:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":84182,"symbolAliases":[{"foreign":{"id":79484,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"1464:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79487,"nodeType":"ImportDirective","src":"1501:50:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":82433,"sourceUnit":84638,"symbolAliases":[{"foreign":{"id":79486,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84637,"src":"1509:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82432,"nodeType":"ContractDefinition","src":"1553:48775:165","nodes":[{"id":79504,"nodeType":"VariableDeclaration","src":"1849:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1874:12:165","scope":82432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1849:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":79503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1889:66:165","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":79507,"nodeType":"VariableDeclaration","src":"2068:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"2093:17:165","scope":82432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2068:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":79506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2113:66:165","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":79510,"nodeType":"VariableDeclaration","src":"2186:55:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_NAME","nameLocation":"2210:11:165","scope":82432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79508,"name":"string","nodeType":"ElementaryTypeName","src":"2186:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"566172612e45544820526f75746572","id":79509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2224:17:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_ded8ea4cbd8dfac3d256d1ee2019397a32c8630b040ad63275830e967889ecd8","typeString":"literal_string \"Vara.ETH Router\""},"value":"Vara.ETH Router"},"visibility":"private"},{"id":79513,"nodeType":"VariableDeclaration","src":"2247:44:165","nodes":[],"constant":true,"mutability":"constant","name":"EIP712_VERSION","nameLocation":"2271:14:165","scope":82432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":79511,"name":"string","nodeType":"ElementaryTypeName","src":"2247:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"31","id":79512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2288:3:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"},"visibility":"private"},{"id":79516,"nodeType":"VariableDeclaration","src":"2298:73:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nameLocation":"2323:40:165","scope":82432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79514,"name":"uint256","nodeType":"ElementaryTypeName","src":"2298:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f303030","id":79515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2366:5:165","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1_000"},"visibility":"private"},{"id":79519,"nodeType":"VariableDeclaration","src":"2377:72:165","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nameLocation":"2402:41:165","scope":82432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79517,"name":"uint256","nodeType":"ElementaryTypeName","src":"2377:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"353030","id":79518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:3:165","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"visibility":"private"},{"id":79522,"nodeType":"VariableDeclaration","src":"2592:144:165","nodes":[],"constant":true,"mutability":"constant","name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nameLocation":"2617:42:165","scope":82432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2592:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833373564326566396239653333633634306132393566353338373364633734383333633364303139663334393436346365326665383839393936326238303937","id":79521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:66:165","typeDescriptions":{"typeIdentifier":"t_rational_25041847662038966976180655381136102362768580769727479521951050179079337377943_by_1","typeString":"int_const 2504...(69 digits omitted)...7943"},"value":"0x375d2ef9b9e33c640a295f53873dc74833c3d019f349464ce2fe8899962b8097"},"visibility":"private"},{"id":79525,"nodeType":"VariableDeclaration","src":"2743:45:165","nodes":[],"constant":true,"mutability":"constant","name":"PROTOCOL_VERSION","nameLocation":"2768:16:165","scope":82432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79523,"name":"uint256","nodeType":"ElementaryTypeName","src":"2743:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":79524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2787:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"private"},{"id":79533,"nodeType":"FunctionDefinition","src":"2863:53:165","nodes":[],"body":{"id":79532,"nodeType":"Block","src":"2877:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79529,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"2887:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2887:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79531,"nodeType":"ExpressionStatement","src":"2887:22:165"}]},"documentation":{"id":79526,"nodeType":"StructuredDocumentation","src":"2795:63:165","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":79527,"nodeType":"ParameterList","parameters":[],"src":"2874:2:165"},"returnParameters":{"id":79528,"nodeType":"ParameterList","parameters":[],"src":"2877:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79746,"nodeType":"FunctionDefinition","src":"4100:2585:165","nodes":[],"body":{"id":79745,"nodeType":"Block","src":"4515:2170:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":79562,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79536,"src":"4540:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79561,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"4525:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4525:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79564,"nodeType":"ExpressionStatement","src":"4525:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79565,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43762,"src":"4557:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4557:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79567,"nodeType":"ExpressionStatement","src":"4557:17:165"},{"expression":{"arguments":[{"id":79569,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79510,"src":"4598:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79570,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79513,"src":"4611:14:165","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":79568,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"4584:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4584:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79572,"nodeType":"ExpressionStatement","src":"4584:42:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79573,"name":"__Nonces_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43624,"src":"4636:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4636:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79575,"nodeType":"ExpressionStatement","src":"4636:15:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79576,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43892,"src":"4661:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4661:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79578,"nodeType":"ExpressionStatement","src":"4661:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79580,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4873:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4879:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"4873:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4891:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4873:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79584,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74552,"src":"4894:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4894:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79579,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4865:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4865:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79587,"nodeType":"ExpressionStatement","src":"4865:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79589,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"4931:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4951:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4931:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79592,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74555,"src":"4954:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4954:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4923:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4923:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79595,"nodeType":"ExpressionStatement","src":"4923:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79597,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79544,"src":"4998:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79598,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"5013:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4998:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79600,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74558,"src":"5032:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5032:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79596,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4990:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4990:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79603,"nodeType":"ExpressionStatement","src":"4990:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79605,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79548,"src":"5223:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79606,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79544,"src":"5243:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":79607,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"5258:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5243:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79609,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5242:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":79610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5279:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"5242:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5223:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79613,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74563,"src":"5283:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5283:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79604,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5215:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5215:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79616,"nodeType":"ExpressionStatement","src":"5215:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":79618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5334:25:165","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":79617,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82372,"src":"5318:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":79619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5318:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79620,"nodeType":"ExpressionStatement","src":"5318:42:165"},{"assignments":[79623],"declarations":[{"constant":false,"id":79623,"mutability":"mutable","name":"router","nameLocation":"5386:6:165","nodeType":"VariableDeclaration","scope":79745,"src":"5370:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79622,"nodeType":"UserDefinedTypeName","pathNode":{"id":79621,"name":"Storage","nameLocations":["5370:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"5370:7:165"},"referencedDeclaration":74493,"src":"5370:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79626,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79624,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"5395:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5395:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5370:34:165"},{"expression":{"id":79633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79627,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"5415:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5422:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"5415:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79630,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"5437:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5442:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83633,"src":"5437:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83159_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5437:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"5415:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79634,"nodeType":"ExpressionStatement","src":"5415:39:165"},{"expression":{"id":79644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79635,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"5464:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5471:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"5464:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79640,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79538,"src":"5504:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79641,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"5513:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79642,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79542,"src":"5527:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79638,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"5487:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5492:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":83030,"src":"5487:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$83030_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":79643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"5464:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79645,"nodeType":"ExpressionStatement","src":"5464:75:165"},{"expression":{"id":79653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79646,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"5549:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5556:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"5549:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5575:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83260,"src":"5549:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79651,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"5596:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5601:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":82951,"src":"5596:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5549:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79654,"nodeType":"ExpressionStatement","src":"5549:82:165"},{"expression":{"id":79662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79655,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"5641:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5648:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"5641:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5667:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"5641:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79660,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"5690:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5695:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":82955,"src":"5690:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5641:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":79663,"nodeType":"ExpressionStatement","src":"5641:86:165"},{"expression":{"id":79670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79664,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"5737:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5744:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74484,"src":"5737:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79667,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"5762:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5767:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":83610,"src":"5762:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$83151_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":79669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"5737:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":79671,"nodeType":"ExpressionStatement","src":"5737:58:165"},{"expression":{"id":79681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79672,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"5805:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5812:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"5805:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79677,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79544,"src":"5839:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79678,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"5853:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79679,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79548,"src":"5872:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79675,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"5824:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5829:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":83257,"src":"5824:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$83257_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":79680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5824:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"5805:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"id":79682,"nodeType":"ExpressionStatement","src":"5805:84:165"},{"expression":{"id":79693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79683,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"5899:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5906:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"5899:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5919:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83201,"src":"5899:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":79690,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"5942:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5954:6:165","memberName":"length","nodeType":"MemberAccess","src":"5942:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5935:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79688,"name":"uint16","nodeType":"ElementaryTypeName","src":"5935:6:165","typeDescriptions":{}}},"id":79692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5935:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5899:62:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79694,"nodeType":"ExpressionStatement","src":"5899:62:165"},{"assignments":[79696],"declarations":[{"constant":false,"id":79696,"mutability":"mutable","name":"decimalsFactor","nameLocation":"5980:14:165","nodeType":"VariableDeclaration","scope":79745,"src":"5972:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79695,"name":"uint256","nodeType":"ElementaryTypeName","src":"5972:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79704,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5997:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":79699,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79540,"src":"6016:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79698,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"6003:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":79700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":79701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6030:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"6003:35:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"5997:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5972:68:165"},{"expression":{"id":79713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79705,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"6050:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6057:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"6050:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6070:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"6050:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79710,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79516,"src":"6101:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79711,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79696,"src":"6144:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6101:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6050:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79714,"nodeType":"ExpressionStatement","src":"6050:108:165"},{"expression":{"id":79723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79715,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"6168:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6175:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"6168:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6188:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83207,"src":"6168:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79720,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79519,"src":"6220:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79721,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79696,"src":"6264:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6220:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6168:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79724,"nodeType":"ExpressionStatement","src":"6168:110:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":79726,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"6360:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6367:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"6360:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6386:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":83265,"src":"6360:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"}},{"hexValue":"74727565","id":79729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6411:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":79730,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79551,"src":"6429:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":79731,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79553,"src":"6463:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":79732,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"6511:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":79733,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"6536:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6542:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"6536:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83007_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79725,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82319,"src":"6330:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$83007_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$82986_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":79735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6330:231:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79736,"nodeType":"ExpressionStatement","src":"6330:231:165"},{"expression":{"id":79743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79737,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79623,"src":"6624:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6631:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"6624:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6644:15:165","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"6624:35:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79742,"name":"PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"6662:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6624:54:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79744,"nodeType":"ExpressionStatement","src":"6624:54:165"}]},"documentation":{"id":79534,"nodeType":"StructuredDocumentation","src":"2922:1173:165","text":" @dev Initializes the `Router` with the given parameters.\n @param _owner The address of the owner of the `Router`. Owner can perform `onlyOwner` actions.\n @param _mirror The address of the mirror contract. It's recommended to pre-compute the mirror address and set it here.\n @param _wrappedVara The address of the `WrappedVara` (WVARA) ERC20 token contract.\n @param _middleware The address of the middleware contract.\n @param _eraDuration The duration of an era in seconds.\n @param _electionDuration The duration of an election in seconds.\n @param _validationDelay The delay before validators can start validating in seconds.\n @param _aggregatedPublicKey The optional aggregated public key of the initial validators. Will be used in future.\n @param _verifiableSecretSharingCommitment The optional verifiable secret sharing commitment of the initial validators. Will be used in future.\n @param _validators The list of initial validators' addresses. Currently `Router` batch commitments uses ECDSA signatures,\n so the list of validators is used for signature verification."},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":79559,"kind":"modifierInvocation","modifierName":{"id":79558,"name":"initializer","nameLocations":["4503:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"4503:11:165"},"nodeType":"ModifierInvocation","src":"4503:11:165"}],"name":"initialize","nameLocation":"4109:10:165","parameters":{"id":79557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79536,"mutability":"mutable","name":"_owner","nameLocation":"4137:6:165","nodeType":"VariableDeclaration","scope":79746,"src":"4129:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79535,"name":"address","nodeType":"ElementaryTypeName","src":"4129:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79538,"mutability":"mutable","name":"_mirror","nameLocation":"4161:7:165","nodeType":"VariableDeclaration","scope":79746,"src":"4153:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79537,"name":"address","nodeType":"ElementaryTypeName","src":"4153:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79540,"mutability":"mutable","name":"_wrappedVara","nameLocation":"4186:12:165","nodeType":"VariableDeclaration","scope":79746,"src":"4178:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79539,"name":"address","nodeType":"ElementaryTypeName","src":"4178:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79542,"mutability":"mutable","name":"_middleware","nameLocation":"4216:11:165","nodeType":"VariableDeclaration","scope":79746,"src":"4208:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79541,"name":"address","nodeType":"ElementaryTypeName","src":"4208:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79544,"mutability":"mutable","name":"_eraDuration","nameLocation":"4245:12:165","nodeType":"VariableDeclaration","scope":79746,"src":"4237:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79543,"name":"uint256","nodeType":"ElementaryTypeName","src":"4237:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79546,"mutability":"mutable","name":"_electionDuration","nameLocation":"4275:17:165","nodeType":"VariableDeclaration","scope":79746,"src":"4267:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79545,"name":"uint256","nodeType":"ElementaryTypeName","src":"4267:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79548,"mutability":"mutable","name":"_validationDelay","nameLocation":"4310:16:165","nodeType":"VariableDeclaration","scope":79746,"src":"4302:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79547,"name":"uint256","nodeType":"ElementaryTypeName","src":"4302:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79551,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"4370:20:165","nodeType":"VariableDeclaration","scope":79746,"src":"4336:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":79550,"nodeType":"UserDefinedTypeName","pathNode":{"id":79549,"name":"Gear.AggregatedPublicKey","nameLocations":["4336:4:165","4341:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"4336:24:165"},"referencedDeclaration":82986,"src":"4336:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":79553,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"4415:34:165","nodeType":"VariableDeclaration","scope":79746,"src":"4400:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":79552,"name":"bytes","nodeType":"ElementaryTypeName","src":"4400:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":79556,"mutability":"mutable","name":"_validators","nameLocation":"4478:11:165","nodeType":"VariableDeclaration","scope":79746,"src":"4459:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79554,"name":"address","nodeType":"ElementaryTypeName","src":"4459:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79555,"nodeType":"ArrayTypeName","src":"4459:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4119:376:165"},"returnParameters":{"id":79560,"nodeType":"ParameterList","parameters":[],"src":"4515:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79849,"nodeType":"FunctionDefinition","src":"7005:3088:165","nodes":[],"body":{"id":79848,"nodeType":"Block","src":"7063:3030:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79756,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"9336:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9336:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79755,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"9321:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9321:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79759,"nodeType":"ExpressionStatement","src":"9321:23:165"},{"expression":{"arguments":[{"id":79761,"name":"EIP712_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79510,"src":"9368:11:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":79762,"name":"EIP712_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79513,"src":"9381:14:165","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":79760,"name":"__EIP712_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44129,"src":"9354:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":79763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9354:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79764,"nodeType":"ExpressionStatement","src":"9354:42:165"},{"assignments":[79767],"declarations":[{"constant":false,"id":79767,"mutability":"mutable","name":"router","nameLocation":"9423:6:165","nodeType":"VariableDeclaration","scope":79848,"src":"9407:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79766,"nodeType":"UserDefinedTypeName","pathNode":{"id":79765,"name":"Storage","nameLocations":["9407:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"9407:7:165"},"referencedDeclaration":74493,"src":"9407:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79770,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79768,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"9432:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9432:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9407:34:165"},{"expression":{"id":79777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79771,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79767,"src":"9451:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9458:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"9451:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79774,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"9473:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9478:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":83633,"src":"9473:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$83159_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":79776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9473:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"9451:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79778,"nodeType":"ExpressionStatement","src":"9451:39:165"},{"expression":{"id":79790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79779,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79767,"src":"9500:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9507:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74472,"src":"9500:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30","id":79786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9569:1:165","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":79785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9561:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9561:7:165","typeDescriptions":{}}},"id":79787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9561:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"30","id":79788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9584:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":79782,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"9530:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9535:18:165","memberName":"CommittedBatchInfo","nodeType":"MemberAccess","referencedDeclaration":83145,"src":"9530:23:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CommittedBatchInfo_$83145_storage_ptr_$","typeString":"type(struct Gear.CommittedBatchInfo storage pointer)"}},"id":79789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9555:4:165","9573:9:165"],"names":["hash","timestamp"],"nodeType":"FunctionCall","src":"9530:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_memory_ptr","typeString":"struct Gear.CommittedBatchInfo memory"}},"src":"9500:87:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79791,"nodeType":"ExpressionStatement","src":"9500:87:165"},{"expression":{"id":79806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79792,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79767,"src":"9597:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9604:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"9597:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79796,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9617:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83201,"src":"9597:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79801,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79767,"src":"9666:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79799,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"9640:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9645:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83900,"src":"9640:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9640:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79803,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9674:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"9640:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9679:6:165","memberName":"length","nodeType":"MemberAccess","src":"9640:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9633:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":79797,"name":"uint16","nodeType":"ElementaryTypeName","src":"9633:6:165","typeDescriptions":{}}},"id":79805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9633:53:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"9597:89:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":79807,"nodeType":"ExpressionStatement","src":"9597:89:165"},{"assignments":[79809],"declarations":[{"constant":false,"id":79809,"mutability":"mutable","name":"decimalsFactor","nameLocation":"9704:14:165","nodeType":"VariableDeclaration","scope":79848,"src":"9696:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79808,"name":"uint256","nodeType":"ElementaryTypeName","src":"9696:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79819,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":79810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9721:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":79812,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79767,"src":"9740:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9747:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"9740:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9761:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"9740:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79811,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"9727:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":79815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9727:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":79816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9774:8:165","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":46861,"src":"9727:55:165","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":79817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9727:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9721:63:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9696:88:165"},{"expression":{"id":79828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79820,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79767,"src":"9794:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9801:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"9794:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9814:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"9794:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79825,"name":"DEFAULT_REQUEST_CODE_VALIDATION_BASE_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79516,"src":"9845:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79826,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79809,"src":"9888:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9845:57:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9794:108:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79829,"nodeType":"ExpressionStatement","src":"9794:108:165"},{"expression":{"id":79838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79830,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79767,"src":"9912:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9919:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"9912:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9932:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83207,"src":"9912:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79835,"name":"DEFAULT_REQUEST_CODE_VALIDATION_EXTRA_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79519,"src":"9964:41:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79836,"name":"decimalsFactor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79809,"src":"10008:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9964:58:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9912:110:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79839,"nodeType":"ExpressionStatement","src":"9912:110:165"},{"expression":{"id":79846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79840,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79767,"src":"10032:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10039:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"10032:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10052:15:165","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"10032:35:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79845,"name":"PROTOCOL_VERSION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79525,"src":"10070:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10032:54:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79847,"nodeType":"ExpressionStatement","src":"10032:54:165"}]},"documentation":{"id":79747,"nodeType":"StructuredDocumentation","src":"6691:309:165","text":" @dev Reinitializes the `Router` to set up new storage layout.\n This function is intended to be called during an upgrade/wipe and can contain any logic.\n NOTE: Don't forget to bump `reinitializer(version)` in modifier!\n @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":79750,"kind":"modifierInvocation","modifierName":{"id":79749,"name":"onlyOwner","nameLocations":["7036:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"7036:9:165"},"nodeType":"ModifierInvocation","src":"7036:9:165"},{"arguments":[{"hexValue":"35","id":79752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7060:1:165","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"id":79753,"kind":"modifierInvocation","modifierName":{"id":79751,"name":"reinitializer","nameLocations":["7046:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"7046:13:165"},"nodeType":"ModifierInvocation","src":"7046:16:165"}],"name":"reinitialize","nameLocation":"7014:12:165","parameters":{"id":79748,"nodeType":"ParameterList","parameters":[],"src":"7026:2:165"},"returnParameters":{"id":79754,"nodeType":"ParameterList","parameters":[],"src":"7063:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79859,"nodeType":"FunctionDefinition","src":"10258:84:165","nodes":[],"body":{"id":79858,"nodeType":"Block","src":"10340:2:165","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":79850,"nodeType":"StructuredDocumentation","src":"10099:154:165","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":79856,"kind":"modifierInvocation","modifierName":{"id":79855,"name":"onlyOwner","nameLocations":["10330:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"10330:9:165"},"nodeType":"ModifierInvocation","src":"10330:9:165"}],"name":"_authorizeUpgrade","nameLocation":"10267:17:165","overrides":{"id":79854,"nodeType":"OverrideSpecifier","overrides":[],"src":"10321:8:165"},"parameters":{"id":79853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79852,"mutability":"mutable","name":"newImplementation","nameLocation":"10293:17:165","nodeType":"VariableDeclaration","scope":79859,"src":"10285:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79851,"name":"address","nodeType":"ElementaryTypeName","src":"10285:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10284:27:165"},"returnParameters":{"id":79857,"nodeType":"ParameterList","parameters":[],"src":"10340:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79916,"nodeType":"FunctionDefinition","src":"10514:1014:165","nodes":[],"body":{"id":79915,"nodeType":"Block","src":"10578:950:165","nodes":[],"statements":[{"assignments":[79868],"declarations":[{"constant":false,"id":79868,"mutability":"mutable","name":"router","nameLocation":"10604:6:165","nodeType":"VariableDeclaration","scope":79915,"src":"10588:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79867,"nodeType":"UserDefinedTypeName","pathNode":{"id":79866,"name":"Storage","nameLocations":["10588:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"10588:7:165"},"referencedDeclaration":74493,"src":"10588:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79869,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"10613:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10613:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10588:34:165"},{"assignments":[79876],"declarations":[{"constant":false,"id":79876,"mutability":"mutable","name":"validationSettings","nameLocation":"10667:18:165","nodeType":"VariableDeclaration","scope":79915,"src":"10632:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83281_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":79875,"nodeType":"UserDefinedTypeName","pathNode":{"id":79874,"name":"Gear.ValidationSettingsView","nameLocations":["10632:4:165","10637:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":83281,"src":"10632:27:165"},"referencedDeclaration":83281,"src":"10632:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83281_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":79882,"initialValue":{"arguments":[{"expression":{"id":79879,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"10700:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10707:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"10700:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":79877,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"10688:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":79878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10693:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":84180,"src":"10688:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$83269_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$83281_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":79881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10688:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83281_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"10632:94:165"},{"expression":{"arguments":[{"expression":{"id":79884,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"10783:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10790:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"10783:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":79886,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"10838:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10845:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74472,"src":"10838:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":79888,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"10894:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10901:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"10894:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":79890,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79876,"src":"10948:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$83281_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":79891,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"10997:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11004:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74484,"src":"10997:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":79893,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"11044:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11051:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"11044:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":79895,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"11089:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11096:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"11089:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11109:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83195,"src":"11089:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79898,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"11157:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11164:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"11157:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11177:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83198,"src":"11157:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79901,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"11225:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11232:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"11225:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11245:13:165","memberName":"maxValidators","nodeType":"MemberAccess","referencedDeclaration":83201,"src":"11225:33:165","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"id":79904,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"11302:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11309:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"11302:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11322:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"11302:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79907,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"11395:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11402:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"11395:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11415:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83207,"src":"11395:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79910,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79868,"src":"11475:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11482:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"11475:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11495:15:165","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"11475:35:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$83281_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$83151_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79883,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74460,"src":"10743:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$74460_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":79913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["10769:12:165","10816:20:165","10879:13:165","10928:18:165","10980:15:165","11033:9:165","11074:13:165","11136:19:165","11210:13:165","11272:28:165","11364:29:165","11458:15:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount","maxValidators","requestCodeValidationBaseFee","requestCodeValidationExtraFee","protocolVersion"],"nodeType":"FunctionCall","src":"10743:778:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74460_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":79865,"id":79914,"nodeType":"Return","src":"10736:785:165"}]},"baseFunctions":[74656],"documentation":{"id":79860,"nodeType":"StructuredDocumentation","src":"10367:142:165","text":" @dev Returns the storage view of the contract storage.\n @return storageView The storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"10523:11:165","parameters":{"id":79861,"nodeType":"ParameterList","parameters":[],"src":"10534:2:165"},"returnParameters":{"id":79865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79916,"src":"10558:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74460_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":79863,"nodeType":"UserDefinedTypeName","pathNode":{"id":79862,"name":"StorageView","nameLocations":["10558:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":74460,"src":"10558:11:165"},"referencedDeclaration":74460,"src":"10558:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$74460_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"10557:20:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79928,"nodeType":"FunctionDefinition","src":"11664:109:165","nodes":[],"body":{"id":79927,"nodeType":"Block","src":"11722:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79922,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"11739:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11739:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11749:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"11739:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11762:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83154,"src":"11739:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79921,"id":79926,"nodeType":"Return","src":"11732:34:165"}]},"baseFunctions":[74662],"documentation":{"id":79917,"nodeType":"StructuredDocumentation","src":"11534:125:165","text":" @dev Returns the hash of the genesis block.\n @return genesisBlockHash The hash of the genesis block."},"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"11673:16:165","parameters":{"id":79918,"nodeType":"ParameterList","parameters":[],"src":"11689:2:165"},"returnParameters":{"id":79921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79920,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79928,"src":"11713:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79919,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11713:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11712:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79940,"nodeType":"FunctionDefinition","src":"11919:113:165","nodes":[],"body":{"id":79939,"nodeType":"Block","src":"11976:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79934,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"11993:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11993:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12003:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"11993:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79937,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12016:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"11993:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79933,"id":79938,"nodeType":"Return","src":"11986:39:165"}]},"baseFunctions":[74668],"documentation":{"id":79929,"nodeType":"StructuredDocumentation","src":"11779:135:165","text":" @dev Returns the timestamp of the genesis block.\n @return genesisTimestamp The timestamp of the genesis block."},"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"11928:16:165","parameters":{"id":79930,"nodeType":"ParameterList","parameters":[],"src":"11944:2:165"},"returnParameters":{"id":79933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79932,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79940,"src":"11968:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79931,"name":"uint48","nodeType":"ElementaryTypeName","src":"11968:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"11967:8:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79952,"nodeType":"FunctionDefinition","src":"12194:125:165","nodes":[],"body":{"id":79951,"nodeType":"Block","src":"12260:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79946,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"12277:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12277:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12287:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74472,"src":"12277:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12308:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83142,"src":"12277:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79945,"id":79950,"nodeType":"Return","src":"12270:42:165"}]},"baseFunctions":[74674],"documentation":{"id":79941,"nodeType":"StructuredDocumentation","src":"12038:151:165","text":" @dev Returns the hash of the latest committed batch.\n @return latestCommittedBatchHash The hash of the latest committed batch."},"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"12203:24:165","parameters":{"id":79942,"nodeType":"ParameterList","parameters":[],"src":"12227:2:165"},"returnParameters":{"id":79945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79952,"src":"12251:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79943,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12251:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12250:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79964,"nodeType":"FunctionDefinition","src":"12496:134:165","nodes":[],"body":{"id":79963,"nodeType":"Block","src":"12566:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79958,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"12583:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12583:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12593:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74472,"src":"12583:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12614:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"12583:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":79957,"id":79962,"nodeType":"Return","src":"12576:47:165"}]},"baseFunctions":[74680],"documentation":{"id":79953,"nodeType":"StructuredDocumentation","src":"12325:166:165","text":" @dev Returns the timestamp of the latest committed batch.\n @return latestCommittedBatchTimestamp The timestamp of the latest committed batch."},"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"12505:29:165","parameters":{"id":79954,"nodeType":"ParameterList","parameters":[],"src":"12534:2:165"},"returnParameters":{"id":79957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79956,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79964,"src":"12558:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":79955,"name":"uint48","nodeType":"ElementaryTypeName","src":"12558:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"12557:8:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79976,"nodeType":"FunctionDefinition","src":"12782:106:165","nodes":[],"body":{"id":79975,"nodeType":"Block","src":"12834:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79970,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"12851:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12851:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12861:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"12851:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12875:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":83023,"src":"12851:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79969,"id":79974,"nodeType":"Return","src":"12844:37:165"}]},"baseFunctions":[74686],"documentation":{"id":79965,"nodeType":"StructuredDocumentation","src":"12636:141:165","text":" @dev Returns the address of the mirror implementation.\n @return mirrorImpl The address of the mirror implementation."},"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"12791:10:165","parameters":{"id":79966,"nodeType":"ParameterList","parameters":[],"src":"12801:2:165"},"returnParameters":{"id":79969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79976,"src":"12825:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79967,"name":"address","nodeType":"ElementaryTypeName","src":"12825:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12824:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79988,"nodeType":"FunctionDefinition","src":"13053:112:165","nodes":[],"body":{"id":79987,"nodeType":"Block","src":"13106:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79982,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"13123:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13123:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13133:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"13123:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13147:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"13123:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79981,"id":79986,"nodeType":"Return","src":"13116:42:165"}]},"baseFunctions":[74692],"documentation":{"id":79977,"nodeType":"StructuredDocumentation","src":"12894:154:165","text":" @dev Returns the address of the wrapped Vara implementation.\n @return wrappedVara The address of the wrapped Vara implementation."},"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"13062:11:165","parameters":{"id":79978,"nodeType":"ParameterList","parameters":[],"src":"13073:2:165"},"returnParameters":{"id":79981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79988,"src":"13097:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79979,"name":"address","nodeType":"ElementaryTypeName","src":"13097:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13096:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80000,"nodeType":"FunctionDefinition","src":"13325:110:165","nodes":[],"body":{"id":79999,"nodeType":"Block","src":"13377:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79994,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"13394:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13394:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13404:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"13394:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13418:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"13394:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79993,"id":79998,"nodeType":"Return","src":"13387:41:165"}]},"baseFunctions":[74698],"documentation":{"id":79989,"nodeType":"StructuredDocumentation","src":"13171:149:165","text":" @dev Returns the address of the middleware implementation.\n @return middleware The address of the middleware implementation."},"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"13334:10:165","parameters":{"id":79990,"nodeType":"ParameterList","parameters":[],"src":"13344:2:165"},"returnParameters":{"id":79993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79992,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80000,"src":"13368:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79991,"name":"address","nodeType":"ElementaryTypeName","src":"13368:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13367:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80015,"nodeType":"FunctionDefinition","src":"13628:175:165","nodes":[],"body":{"id":80014,"nodeType":"Block","src":"13723:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80009,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"13766:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13766:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80007,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"13740:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13745:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83900,"src":"13740:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13740:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13777:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82991,"src":"13740:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":80006,"id":80013,"nodeType":"Return","src":"13733:63:165"}]},"baseFunctions":[74705],"documentation":{"id":80001,"nodeType":"StructuredDocumentation","src":"13441:182:165","text":" @dev Returns the aggregated public key of the current validators.\n @return validatorsAggregatedPublicKey The aggregated public key of the current validators."},"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"13637:29:165","parameters":{"id":80002,"nodeType":"ParameterList","parameters":[],"src":"13666:2:165"},"returnParameters":{"id":80006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80005,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80015,"src":"13690:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":80004,"nodeType":"UserDefinedTypeName","pathNode":{"id":80003,"name":"Gear.AggregatedPublicKey","nameLocations":["13690:4:165","13695:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"13690:24:165"},"referencedDeclaration":82986,"src":"13690:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"13689:33:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80032,"nodeType":"FunctionDefinition","src":"14269:207:165","nodes":[],"body":{"id":80031,"nodeType":"Block","src":"14361:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80025,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"14417:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14417:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80023,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"14391:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14396:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83900,"src":"14391:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14391:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14428:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82994,"src":"14391:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":80021,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84637,"src":"14378:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84637_$","typeString":"type(library SSTORE2)"}},"id":80022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14386:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":84610,"src":"14378:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":80029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14378:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":80020,"id":80030,"nodeType":"Return","src":"14371:98:165"}]},"baseFunctions":[74711],"documentation":{"id":80016,"nodeType":"StructuredDocumentation","src":"13809:455:165","text":" @dev Returns the verifiable secret sharing commitment of the current validators.\n This is serialized `frost_core::keys::VerifiableSecretSharingCommitment` struct.\n See https://docs.rs/frost-core/latest/frost_core/keys/struct.VerifiableSecretSharingCommitment.html#method.serialize_whole.\n @return validatorsVerifiableSecretSharingCommitment The verifiable secret sharing commitment of the current validators."},"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"14278:43:165","parameters":{"id":80017,"nodeType":"ParameterList","parameters":[],"src":"14321:2:165"},"returnParameters":{"id":80020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80032,"src":"14347:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80018,"name":"bytes","nodeType":"ElementaryTypeName","src":"14347:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14346:14:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80079,"nodeType":"FunctionDefinition","src":"14648:375:165","nodes":[],"body":{"id":80078,"nodeType":"Block","src":"14730:293:165","nodes":[],"statements":[{"assignments":[80045],"declarations":[{"constant":false,"id":80045,"mutability":"mutable","name":"_currentValidators","nameLocation":"14764:18:165","nodeType":"VariableDeclaration","scope":80078,"src":"14740:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80044,"nodeType":"UserDefinedTypeName","pathNode":{"id":80043,"name":"Gear.Validators","nameLocations":["14740:4:165","14745:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"14740:15:165"},"referencedDeclaration":83007,"src":"14740:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80051,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80048,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"14811:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14811:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80046,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"14785:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14790:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83900,"src":"14785:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14785:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14740:81:165"},{"body":{"id":80074,"nodeType":"Block","src":"14881:114:165","statements":[{"condition":{"id":80069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14899:39:165","subExpression":{"baseExpression":{"expression":{"id":80063,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"14900:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14919:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"14900:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80068,"indexExpression":{"baseExpression":{"id":80065,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80036,"src":"14923:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80067,"indexExpression":{"id":80066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80053,"src":"14935:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14923:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14900:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80073,"nodeType":"IfStatement","src":"14895:90:165","trueBody":{"id":80072,"nodeType":"Block","src":"14940:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":80070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14965:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":80040,"id":80071,"nodeType":"Return","src":"14958:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80056,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80053,"src":"14852:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80057,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80036,"src":"14856:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14868:6:165","memberName":"length","nodeType":"MemberAccess","src":"14856:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14852:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80075,"initializationExpression":{"assignments":[80053],"declarations":[{"constant":false,"id":80053,"mutability":"mutable","name":"i","nameLocation":"14845:1:165","nodeType":"VariableDeclaration","scope":80075,"src":"14837:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80052,"name":"uint256","nodeType":"ElementaryTypeName","src":"14837:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80055,"initialValue":{"hexValue":"30","id":80054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14849:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14837:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14876:3:165","subExpression":{"id":80060,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80053,"src":"14876:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80062,"nodeType":"ExpressionStatement","src":"14876:3:165"},"nodeType":"ForStatement","src":"14832:163:165"},{"expression":{"hexValue":"74727565","id":80076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15012:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":80040,"id":80077,"nodeType":"Return","src":"15005:11:165"}]},"baseFunctions":[74720],"documentation":{"id":80033,"nodeType":"StructuredDocumentation","src":"14482:161:165","text":" @dev Checks if the given addresses are all validators.\n @return areValidators `true` if all addresses are validators, `false` otherwise."},"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"14657:13:165","parameters":{"id":80037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80036,"mutability":"mutable","name":"_validators","nameLocation":"14690:11:165","nodeType":"VariableDeclaration","scope":80079,"src":"14671:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80034,"name":"address","nodeType":"ElementaryTypeName","src":"14671:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80035,"nodeType":"ArrayTypeName","src":"14671:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"14670:32:165"},"returnParameters":{"id":80040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80039,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80079,"src":"14724:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80038,"name":"bool","nodeType":"ElementaryTypeName","src":"14724:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14723:6:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80097,"nodeType":"FunctionDefinition","src":"15185:144:165","nodes":[],"body":{"id":80096,"nodeType":"Block","src":"15253:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80089,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"15296:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15296:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80087,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"15270:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15275:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83900,"src":"15270:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15270:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15307:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"15270:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80094,"indexExpression":{"id":80093,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80082,"src":"15311:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15270:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80086,"id":80095,"nodeType":"Return","src":"15263:59:165"}]},"baseFunctions":[74728],"documentation":{"id":80080,"nodeType":"StructuredDocumentation","src":"15029:151:165","text":" @dev Checks if the given address is a validator.\n @return isValidator `true` if the address is a validator, `false` otherwise."},"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"15194:11:165","parameters":{"id":80083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80082,"mutability":"mutable","name":"_validator","nameLocation":"15214:10:165","nodeType":"VariableDeclaration","scope":80097,"src":"15206:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80081,"name":"address","nodeType":"ElementaryTypeName","src":"15206:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15205:20:165"},"returnParameters":{"id":80086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80097,"src":"15247:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80084,"name":"bool","nodeType":"ElementaryTypeName","src":"15247:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15246:6:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80122,"nodeType":"FunctionDefinition","src":"15573:285:165","nodes":[],"body":{"id":80121,"nodeType":"Block","src":"15688:170:165","nodes":[],"statements":[{"assignments":[80109],"declarations":[{"constant":false,"id":80109,"mutability":"mutable","name":"router","nameLocation":"15722:6:165","nodeType":"VariableDeclaration","scope":80121,"src":"15698:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80108,"nodeType":"UserDefinedTypeName","pathNode":{"id":80107,"name":"IRouter.Storage","nameLocations":["15698:7:165","15706:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"15698:15:165"},"referencedDeclaration":74493,"src":"15698:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80112,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80110,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"15731:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15731:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15698:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":80113,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"15758:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15765:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"15758:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15784:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83260,"src":"15758:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80116,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"15804:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15811:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"15804:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15830:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"15804:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":80119,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15757:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":80104,"id":80120,"nodeType":"Return","src":"15750:101:165"}]},"baseFunctions":[74736],"documentation":{"id":80098,"nodeType":"StructuredDocumentation","src":"15335:233:165","text":" @dev Returns the signing threshold fraction.\n @return thresholdNumerator The numerator of the signing threshold fraction.\n @return thresholdDenominator The denominator of the signing threshold fraction."},"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"15582:24:165","parameters":{"id":80099,"nodeType":"ParameterList","parameters":[],"src":"15606:2:165"},"returnParameters":{"id":80104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80101,"mutability":"mutable","name":"thresholdNumerator","nameLocation":"15638:18:165","nodeType":"VariableDeclaration","scope":80122,"src":"15630:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80100,"name":"uint128","nodeType":"ElementaryTypeName","src":"15630:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":80103,"mutability":"mutable","name":"thresholdDenominator","nameLocation":"15666:20:165","nodeType":"VariableDeclaration","scope":80122,"src":"15658:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80102,"name":"uint128","nodeType":"ElementaryTypeName","src":"15658:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"15629:58:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80137,"nodeType":"FunctionDefinition","src":"15990:126:165","nodes":[],"body":{"id":80136,"nodeType":"Block","src":"16051:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80131,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"16094:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16094:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80129,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"16068:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16073:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83900,"src":"16068:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16068:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16105:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"16068:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":80128,"id":80135,"nodeType":"Return","src":"16061:48:165"}]},"baseFunctions":[74743],"documentation":{"id":80123,"nodeType":"StructuredDocumentation","src":"15864:121:165","text":" @dev Returns the list of current validators.\n @return validators The list of current validators."},"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"15999:10:165","parameters":{"id":80124,"nodeType":"ParameterList","parameters":[],"src":"16009:2:165"},"returnParameters":{"id":80128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80137,"src":"16033:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80125,"name":"address","nodeType":"ElementaryTypeName","src":"16033:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80126,"nodeType":"ArrayTypeName","src":"16033:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"16032:18:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80152,"nodeType":"FunctionDefinition","src":"16255:129:165","nodes":[],"body":{"id":80151,"nodeType":"Block","src":"16312:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80145,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"16355:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16355:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80143,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"16329:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16334:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83900,"src":"16329:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16329:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80148,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16366:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"16329:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16371:6:165","memberName":"length","nodeType":"MemberAccess","src":"16329:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80142,"id":80150,"nodeType":"Return","src":"16322:55:165"}]},"baseFunctions":[74749],"documentation":{"id":80138,"nodeType":"StructuredDocumentation","src":"16122:128:165","text":" @dev Returns the count of current validators.\n @return validatorsCount The count of current validators."},"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"16264:15:165","parameters":{"id":80139,"nodeType":"ParameterList","parameters":[],"src":"16279:2:165"},"returnParameters":{"id":80142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80141,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80152,"src":"16303:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80140,"name":"uint256","nodeType":"ElementaryTypeName","src":"16303:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16302:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80183,"nodeType":"FunctionDefinition","src":"16585:348:165","nodes":[],"body":{"id":80182,"nodeType":"Block","src":"16646:287:165","nodes":[],"statements":[{"assignments":[80162],"declarations":[{"constant":false,"id":80162,"mutability":"mutable","name":"router","nameLocation":"16680:6:165","nodeType":"VariableDeclaration","scope":80182,"src":"16656:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80161,"nodeType":"UserDefinedTypeName","pathNode":{"id":80160,"name":"IRouter.Storage","nameLocations":["16656:7:165","16664:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"16656:15:165"},"referencedDeclaration":74493,"src":"16656:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80165,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80163,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"16689:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16689:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16656:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":80170,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80162,"src":"16779:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80168,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"16753:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16758:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":83900,"src":"16753:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16753:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16787:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"16753:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16792:6:165","memberName":"length","nodeType":"MemberAccess","src":"16753:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80174,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80162,"src":"16812:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16819:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"16812:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16838:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":83260,"src":"16812:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":80177,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80162,"src":"16870:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16877:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":74480,"src":"16870:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$83269_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":80179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16896:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":83262,"src":"16870:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":80166,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"16715:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16720:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":84068,"src":"16715:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":80180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16715:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80157,"id":80181,"nodeType":"Return","src":"16708:218:165"}]},"baseFunctions":[74755],"documentation":{"id":80153,"nodeType":"StructuredDocumentation","src":"16390:190:165","text":" @dev Returns the threshold number of validators required for a valid signature.\n @return threshold The threshold number of validators required for a valid signature."},"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"16594:19:165","parameters":{"id":80154,"nodeType":"ParameterList","parameters":[],"src":"16613:2:165"},"returnParameters":{"id":80157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80183,"src":"16637:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80155,"name":"uint256","nodeType":"ElementaryTypeName","src":"16637:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16636:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80197,"nodeType":"FunctionDefinition","src":"17105:122:165","nodes":[],"body":{"id":80196,"nodeType":"Block","src":"17189:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":80192,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"17206:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$82432_$","typeString":"type(contract super Router)"}},"id":80193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17212:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43784,"src":"17206:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":80194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17206:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80191,"id":80195,"nodeType":"Return","src":"17199:21:165"}]},"baseFunctions":[43784,74761],"documentation":{"id":80184,"nodeType":"StructuredDocumentation","src":"16939:161:165","text":" @dev Returns true if the contract is paused, and false otherwise.\n @return isPaused `true` if the contract is paused, `false` otherwise."},"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"17114:6:165","overrides":{"id":80188,"nodeType":"OverrideSpecifier","overrides":[{"id":80186,"name":"IRouter","nameLocations":["17144:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":75008,"src":"17144:7:165"},{"id":80187,"name":"PausableUpgradeable","nameLocations":["17153:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"17153:19:165"}],"src":"17135:38:165"},"parameters":{"id":80185,"nodeType":"ParameterList","parameters":[],"src":"17120:2:165"},"returnParameters":{"id":80191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80190,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80197,"src":"17183:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80189,"name":"bool","nodeType":"ElementaryTypeName","src":"17183:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17182:6:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80209,"nodeType":"FunctionDefinition","src":"17352:130:165","nodes":[],"body":{"id":80208,"nodeType":"Block","src":"17433:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80204,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"17450:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17450:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17460:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":74484,"src":"17450:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":80203,"id":80207,"nodeType":"Return","src":"17443:32:165"}]},"baseFunctions":[74768],"documentation":{"id":80198,"nodeType":"StructuredDocumentation","src":"17233:114:165","text":" @dev Returns the computation settings.\n @return computeSettings The computation settings."},"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"17361:15:165","parameters":{"id":80199,"nodeType":"ParameterList","parameters":[],"src":"17376:2:165"},"returnParameters":{"id":80203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80209,"src":"17400:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":80201,"nodeType":"UserDefinedTypeName","pathNode":{"id":80200,"name":"Gear.ComputationSettings","nameLocations":["17400:4:165","17405:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":83151,"src":"17400:24:165"},"referencedDeclaration":83151,"src":"17400:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$83151_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"17399:33:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80226,"nodeType":"FunctionDefinition","src":"17591:134:165","nodes":[],"body":{"id":80225,"nodeType":"Block","src":"17664:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80218,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"17681:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17681:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17691:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"17681:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17704:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"17681:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80223,"indexExpression":{"id":80222,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80212,"src":"17710:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17681:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"functionReturnParameters":80217,"id":80224,"nodeType":"Return","src":"17674:44:165"}]},"baseFunctions":[74777],"documentation":{"id":80210,"nodeType":"StructuredDocumentation","src":"17488:98:165","text":" @dev Returns the state of code.\n @return codeState The state of the code."},"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"17600:9:165","parameters":{"id":80213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80212,"mutability":"mutable","name":"_codeId","nameLocation":"17618:7:165","nodeType":"VariableDeclaration","scope":80226,"src":"17610:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17610:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17609:17:165"},"returnParameters":{"id":80217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80226,"src":"17648:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"},"typeName":{"id":80215,"nodeType":"UserDefinedTypeName","pathNode":{"id":80214,"name":"Gear.CodeState","nameLocations":["17648:4:165","17653:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83139,"src":"17648:14:165"},"referencedDeclaration":83139,"src":"17648:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"17647:16:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80285,"nodeType":"FunctionDefinition","src":"17849:378:165","nodes":[],"body":{"id":80284,"nodeType":"Block","src":"17946:281:165","nodes":[],"statements":[{"assignments":[80239],"declarations":[{"constant":false,"id":80239,"mutability":"mutable","name":"router","nameLocation":"17972:6:165","nodeType":"VariableDeclaration","scope":80284,"src":"17956:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80238,"nodeType":"UserDefinedTypeName","pathNode":{"id":80237,"name":"Storage","nameLocations":["17956:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"17956:7:165"},"referencedDeclaration":74493,"src":"17956:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80242,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80240,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"17981:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17981:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"17956:34:165"},{"assignments":[80248],"declarations":[{"constant":false,"id":80248,"mutability":"mutable","name":"res","nameLocation":"18025:3:165","nodeType":"VariableDeclaration","scope":80284,"src":"18001:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83139_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80246,"nodeType":"UserDefinedTypeName","pathNode":{"id":80245,"name":"Gear.CodeState","nameLocations":["18001:4:165","18006:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83139,"src":"18001:14:165"},"referencedDeclaration":83139,"src":"18001:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"id":80247,"nodeType":"ArrayTypeName","src":"18001:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83139_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":80256,"initialValue":{"arguments":[{"expression":{"id":80253,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80230,"src":"18052:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18062:6:165","memberName":"length","nodeType":"MemberAccess","src":"18052:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18031:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$83139_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":80250,"nodeType":"UserDefinedTypeName","pathNode":{"id":80249,"name":"Gear.CodeState","nameLocations":["18035:4:165","18040:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83139,"src":"18035:14:165"},"referencedDeclaration":83139,"src":"18035:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"id":80251,"nodeType":"ArrayTypeName","src":"18035:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83139_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":80255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18031:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83139_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18001:68:165"},{"body":{"id":80280,"nodeType":"Block","src":"18127:73:165","statements":[{"expression":{"id":80278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80268,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80248,"src":"18141:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83139_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":80270,"indexExpression":{"id":80269,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80258,"src":"18145:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18141:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80271,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80239,"src":"18150:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18157:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"18150:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18170:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"18150:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80277,"indexExpression":{"baseExpression":{"id":80274,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80230,"src":"18176:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80276,"indexExpression":{"id":80275,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80258,"src":"18186:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18176:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18150:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"src":"18141:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"id":80279,"nodeType":"ExpressionStatement","src":"18141:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80261,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80258,"src":"18100:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80262,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80230,"src":"18104:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18114:6:165","memberName":"length","nodeType":"MemberAccess","src":"18104:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18100:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80281,"initializationExpression":{"assignments":[80258],"declarations":[{"constant":false,"id":80258,"mutability":"mutable","name":"i","nameLocation":"18093:1:165","nodeType":"VariableDeclaration","scope":80281,"src":"18085:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80257,"name":"uint256","nodeType":"ElementaryTypeName","src":"18085:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80260,"initialValue":{"hexValue":"30","id":80259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18097:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18085:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18122:3:165","subExpression":{"id":80265,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80258,"src":"18122:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80267,"nodeType":"ExpressionStatement","src":"18122:3:165"},"nodeType":"ForStatement","src":"18080:120:165"},{"expression":{"id":80282,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80248,"src":"18217:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83139_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":80236,"id":80283,"nodeType":"Return","src":"18210:10:165"}]},"baseFunctions":[74788],"documentation":{"id":80227,"nodeType":"StructuredDocumentation","src":"17731:113:165","text":" @dev Returns the states of multiple codes.\n @return codesStates The states of the codes."},"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"17858:11:165","parameters":{"id":80231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80230,"mutability":"mutable","name":"_codesIds","nameLocation":"17889:9:165","nodeType":"VariableDeclaration","scope":80285,"src":"17870:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17870:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80229,"nodeType":"ArrayTypeName","src":"17870:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"17869:30:165"},"returnParameters":{"id":80236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80235,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80285,"src":"17921:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83139_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":80233,"nodeType":"UserDefinedTypeName","pathNode":{"id":80232,"name":"Gear.CodeState","nameLocations":["17921:4:165","17926:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83139,"src":"17921:14:165"},"referencedDeclaration":83139,"src":"17921:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"id":80234,"nodeType":"ArrayTypeName","src":"17921:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$83139_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"17920:25:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80301,"nodeType":"FunctionDefinition","src":"18353:140:165","nodes":[],"body":{"id":80300,"nodeType":"Block","src":"18426:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80293,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"18443:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18443:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18453:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"18443:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18466:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83192,"src":"18443:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80298,"indexExpression":{"id":80297,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80288,"src":"18475:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18443:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80292,"id":80299,"nodeType":"Return","src":"18436:50:165"}]},"baseFunctions":[74796],"documentation":{"id":80286,"nodeType":"StructuredDocumentation","src":"18233:115:165","text":" @dev Returns the code ID of the given program.\n @return codeId The code ID of the program."},"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"18362:13:165","parameters":{"id":80289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80288,"mutability":"mutable","name":"_programId","nameLocation":"18384:10:165","nodeType":"VariableDeclaration","scope":80301,"src":"18376:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80287,"name":"address","nodeType":"ElementaryTypeName","src":"18376:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18375:20:165"},"returnParameters":{"id":80292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80301,"src":"18417:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18417:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18416:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80357,"nodeType":"FunctionDefinition","src":"18625:376:165","nodes":[],"body":{"id":80356,"nodeType":"Block","src":"18722:279:165","nodes":[],"statements":[{"assignments":[80313],"declarations":[{"constant":false,"id":80313,"mutability":"mutable","name":"router","nameLocation":"18748:6:165","nodeType":"VariableDeclaration","scope":80356,"src":"18732:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80312,"nodeType":"UserDefinedTypeName","pathNode":{"id":80311,"name":"Storage","nameLocations":["18732:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"18732:7:165"},"referencedDeclaration":74493,"src":"18732:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80316,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80314,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"18757:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18757:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"18732:34:165"},{"assignments":[80321],"declarations":[{"constant":false,"id":80321,"mutability":"mutable","name":"res","nameLocation":"18794:3:165","nodeType":"VariableDeclaration","scope":80356,"src":"18777:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18777:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80320,"nodeType":"ArrayTypeName","src":"18777:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":80328,"initialValue":{"arguments":[{"expression":{"id":80325,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80305,"src":"18814:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18827:6:165","memberName":"length","nodeType":"MemberAccess","src":"18814:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18800:13:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":80322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18804:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80323,"nodeType":"ArrayTypeName","src":"18804:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":80327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18800:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18777:57:165"},{"body":{"id":80352,"nodeType":"Block","src":"18895:79:165","statements":[{"expression":{"id":80350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":80340,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80321,"src":"18909:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":80342,"indexExpression":{"id":80341,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80330,"src":"18913:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18909:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":80343,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80313,"src":"18918:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18925:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"18918:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18938:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83192,"src":"18918:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80349,"indexExpression":{"baseExpression":{"id":80346,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80305,"src":"18947:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80348,"indexExpression":{"id":80347,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80330,"src":"18960:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18947:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18918:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18909:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80351,"nodeType":"ExpressionStatement","src":"18909:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80333,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80330,"src":"18865:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80334,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80305,"src":"18869:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18882:6:165","memberName":"length","nodeType":"MemberAccess","src":"18869:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18865:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80353,"initializationExpression":{"assignments":[80330],"declarations":[{"constant":false,"id":80330,"mutability":"mutable","name":"i","nameLocation":"18858:1:165","nodeType":"VariableDeclaration","scope":80353,"src":"18850:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80329,"name":"uint256","nodeType":"ElementaryTypeName","src":"18850:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80332,"initialValue":{"hexValue":"30","id":80331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18862:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18850:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18890:3:165","subExpression":{"id":80337,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80330,"src":"18890:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80339,"nodeType":"ExpressionStatement","src":"18890:3:165"},"nodeType":"ForStatement","src":"18845:129:165"},{"expression":{"id":80354,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80321,"src":"18991:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":80310,"id":80355,"nodeType":"Return","src":"18984:10:165"}]},"baseFunctions":[74806],"documentation":{"id":80302,"nodeType":"StructuredDocumentation","src":"18499:121:165","text":" @dev Returns the code IDs of the given programs.\n @return codesIds The code IDs of the programs."},"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"18634:15:165","parameters":{"id":80306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80305,"mutability":"mutable","name":"_programsIds","nameLocation":"18669:12:165","nodeType":"VariableDeclaration","scope":80357,"src":"18650:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80303,"name":"address","nodeType":"ElementaryTypeName","src":"18650:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80304,"nodeType":"ArrayTypeName","src":"18650:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18649:33:165"},"returnParameters":{"id":80310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80357,"src":"18704:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18704:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80308,"nodeType":"ArrayTypeName","src":"18704:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"18703:18:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80369,"nodeType":"FunctionDefinition","src":"19118:115:165","nodes":[],"body":{"id":80368,"nodeType":"Block","src":"19173:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80363,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"19190:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19190:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19200:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"19190:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19213:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83195,"src":"19190:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80362,"id":80367,"nodeType":"Return","src":"19183:43:165"}]},"baseFunctions":[74812],"documentation":{"id":80358,"nodeType":"StructuredDocumentation","src":"19007:106:165","text":" @dev Returns the count of programs.\n @return programsCount The count of programs."},"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"19127:13:165","parameters":{"id":80359,"nodeType":"ParameterList","parameters":[],"src":"19140:2:165"},"returnParameters":{"id":80362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80369,"src":"19164:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80360,"name":"uint256","nodeType":"ElementaryTypeName","src":"19164:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19163:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80381,"nodeType":"FunctionDefinition","src":"19370:127:165","nodes":[],"body":{"id":80380,"nodeType":"Block","src":"19431:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80375,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"19448:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19448:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19458:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"19448:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19471:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83198,"src":"19448:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80374,"id":80379,"nodeType":"Return","src":"19441:49:165"}]},"baseFunctions":[74818],"documentation":{"id":80370,"nodeType":"StructuredDocumentation","src":"19239:126:165","text":" @dev Returns the count of validated codes.\n @return validatedCodesCount The count of validated codes."},"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"19379:19:165","parameters":{"id":80371,"nodeType":"ParameterList","parameters":[],"src":"19398:2:165"},"returnParameters":{"id":80374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80381,"src":"19422:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80372,"name":"uint256","nodeType":"ElementaryTypeName","src":"19422:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19421:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80393,"nodeType":"FunctionDefinition","src":"19694:147:165","nodes":[],"body":{"id":80392,"nodeType":"Block","src":"19766:75:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80387,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"19783:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19783:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19793:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"19783:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19806:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"19783:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80386,"id":80391,"nodeType":"Return","src":"19776:58:165"}]},"baseFunctions":[74824],"documentation":{"id":80382,"nodeType":"StructuredDocumentation","src":"19503:186:165","text":" @dev Returns the base fee for requesting code validation in WVARA ERC20 token.\n @return requestCodeValidationBaseFee The base fee for requesting code validation."},"functionSelector":"188509e9","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationBaseFee","nameLocation":"19703:28:165","parameters":{"id":80383,"nodeType":"ParameterList","parameters":[],"src":"19731:2:165"},"returnParameters":{"id":80386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80393,"src":"19757:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80384,"name":"uint256","nodeType":"ElementaryTypeName","src":"19757:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19756:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80405,"nodeType":"FunctionDefinition","src":"20093:149:165","nodes":[],"body":{"id":80404,"nodeType":"Block","src":"20166:76:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80399,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"20183:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20183:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20193:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"20183:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20206:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83207,"src":"20183:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80398,"id":80403,"nodeType":"Return","src":"20176:59:165"}]},"baseFunctions":[74830],"documentation":{"id":80394,"nodeType":"StructuredDocumentation","src":"19847:241:165","text":" @dev Returns the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @return requestCodeValidationExtraFee The extra fee for requesting code validation on behalf of someone else."},"functionSelector":"f1ef31ec","implemented":true,"kind":"function","modifiers":[],"name":"requestCodeValidationExtraFee","nameLocation":"20102:29:165","parameters":{"id":80395,"nodeType":"ParameterList","parameters":[],"src":"20131:2:165"},"returnParameters":{"id":80398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80405,"src":"20157:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80396,"name":"uint256","nodeType":"ElementaryTypeName","src":"20157:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20156:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80417,"nodeType":"FunctionDefinition","src":"20375:121:165","nodes":[],"body":{"id":80416,"nodeType":"Block","src":"20434:62:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80411,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"20451:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20451:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20461:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"20451:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20474:15:165","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"20451:38:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80410,"id":80415,"nodeType":"Return","src":"20444:45:165"}]},"baseFunctions":[74836],"documentation":{"id":80406,"nodeType":"StructuredDocumentation","src":"20248:122:165","text":" @dev Returns the current protocol version.\n @return protocolVersion The current protocol version."},"functionSelector":"2ae9c600","implemented":true,"kind":"function","modifiers":[],"name":"protocolVersion","nameLocation":"20384:15:165","parameters":{"id":80407,"nodeType":"ParameterList","parameters":[],"src":"20399:2:165"},"returnParameters":{"id":80410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80417,"src":"20425:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80408,"name":"uint256","nodeType":"ElementaryTypeName","src":"20425:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20424:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80429,"nodeType":"FunctionDefinition","src":"20593:108:165","nodes":[],"body":{"id":80428,"nodeType":"Block","src":"20658:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80424,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"20675:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20675:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20685:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"20675:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":80423,"id":80427,"nodeType":"Return","src":"20668:26:165"}]},"baseFunctions":[74843],"documentation":{"id":80418,"nodeType":"StructuredDocumentation","src":"20502:86:165","text":" @dev Returns the timelines.\n @return timelines The timelines."},"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"20602:9:165","parameters":{"id":80419,"nodeType":"ParameterList","parameters":[],"src":"20611:2:165"},"returnParameters":{"id":80423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80429,"src":"20635:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":80421,"nodeType":"UserDefinedTypeName","pathNode":{"id":80420,"name":"Gear.Timelines","nameLocations":["20635:4:165","20640:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":83257,"src":"20635:14:165"},"referencedDeclaration":83257,"src":"20635:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"20634:23:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":80439,"nodeType":"FunctionDefinition","src":"20875:104:165","nodes":[],"body":{"id":80438,"nodeType":"Block","src":"20935:44:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80435,"name":"_domainSeparatorV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44179,"src":"20952:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20952:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80434,"id":80437,"nodeType":"Return","src":"20945:27:165"}]},"baseFunctions":[74849],"documentation":{"id":80430,"nodeType":"StructuredDocumentation","src":"20707:163:165","text":" @dev Returns the EIP-712 domain separator for `IRouter.requestCodeValidationOnBehalf(...)`.\n @return domainSeparator The domain separator."},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"20884:16:165","parameters":{"id":80431,"nodeType":"ParameterList","parameters":[],"src":"20900:2:165"},"returnParameters":{"id":80434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80433,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80439,"src":"20926:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20926:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20925:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80455,"nodeType":"FunctionDefinition","src":"21143:116:165","nodes":[],"body":{"id":80454,"nodeType":"Block","src":"21200:59:165","nodes":[],"statements":[{"expression":{"id":80452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80447,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"21210:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21210:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21220:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"21210:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21234:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":83023,"src":"21210:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80451,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80442,"src":"21243:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21210:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80453,"nodeType":"ExpressionStatement","src":"21210:42:165"}]},"baseFunctions":[74855],"documentation":{"id":80440,"nodeType":"StructuredDocumentation","src":"21010:128:165","text":" @dev Sets the `Mirror` implementation address.\n @param newMirror The new mirror implementation address."},"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":80445,"kind":"modifierInvocation","modifierName":{"id":80444,"name":"onlyOwner","nameLocations":["21190:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21190:9:165"},"nodeType":"ModifierInvocation","src":"21190:9:165"}],"name":"setMirror","nameLocation":"21152:9:165","parameters":{"id":80443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80442,"mutability":"mutable","name":"newMirror","nameLocation":"21170:9:165","nodeType":"VariableDeclaration","scope":80455,"src":"21162:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80441,"name":"address","nodeType":"ElementaryTypeName","src":"21162:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21161:19:165"},"returnParameters":{"id":80446,"nodeType":"ParameterList","parameters":[],"src":"21200:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80471,"nodeType":"FunctionDefinition","src":"21438:161:165","nodes":[],"body":{"id":80470,"nodeType":"Block","src":"21518:81:165","nodes":[],"statements":[{"expression":{"id":80468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80463,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"21528:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21528:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21538:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"21528:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21551:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"21528:51:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80467,"name":"newBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80458,"src":"21582:10:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21528:64:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80469,"nodeType":"ExpressionStatement","src":"21528:64:165"}]},"baseFunctions":[74861],"documentation":{"id":80456,"nodeType":"StructuredDocumentation","src":"21265:168:165","text":" @dev Sets the base fee for requesting code validation in WVARA ERC20 token.\n @param newBaseFee The new base fee for requesting code validation."},"functionSelector":"11bec80d","implemented":true,"kind":"function","modifiers":[{"id":80461,"kind":"modifierInvocation","modifierName":{"id":80460,"name":"onlyOwner","nameLocations":["21508:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21508:9:165"},"nodeType":"ModifierInvocation","src":"21508:9:165"}],"name":"setRequestCodeValidationBaseFee","nameLocation":"21447:31:165","parameters":{"id":80459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80458,"mutability":"mutable","name":"newBaseFee","nameLocation":"21487:10:165","nodeType":"VariableDeclaration","scope":80471,"src":"21479:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80457,"name":"uint256","nodeType":"ElementaryTypeName","src":"21479:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21478:20:165"},"returnParameters":{"id":80462,"nodeType":"ParameterList","parameters":[],"src":"21518:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80487,"nodeType":"FunctionDefinition","src":"21833:165:165","nodes":[],"body":{"id":80486,"nodeType":"Block","src":"21915:83:165","nodes":[],"statements":[{"expression":{"id":80484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80479,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"21925:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21925:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21935:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"21925:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21948:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83207,"src":"21925:52:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80483,"name":"newExtraFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80474,"src":"21980:11:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21925:66:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80485,"nodeType":"ExpressionStatement","src":"21925:66:165"}]},"baseFunctions":[74867],"documentation":{"id":80472,"nodeType":"StructuredDocumentation","src":"21605:223:165","text":" @dev Sets the extra fee for requesting code validation on behalf of someone else in WVARA ERC20 token.\n @param newExtraFee The new extra fee for requesting code validation on behalf of someone else."},"functionSelector":"0b9737ce","implemented":true,"kind":"function","modifiers":[{"id":80477,"kind":"modifierInvocation","modifierName":{"id":80476,"name":"onlyOwner","nameLocations":["21905:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"21905:9:165"},"nodeType":"ModifierInvocation","src":"21905:9:165"}],"name":"setRequestCodeValidationExtraFee","nameLocation":"21842:32:165","parameters":{"id":80475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80474,"mutability":"mutable","name":"newExtraFee","nameLocation":"21883:11:165","nodeType":"VariableDeclaration","scope":80487,"src":"21875:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80473,"name":"uint256","nodeType":"ElementaryTypeName","src":"21875:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21874:21:165"},"returnParameters":{"id":80478,"nodeType":"ParameterList","parameters":[],"src":"21915:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80514,"nodeType":"FunctionDefinition","src":"22132:265:165","nodes":[],"body":{"id":80513,"nodeType":"Block","src":"22182:215:165","nodes":[],"statements":[{"assignments":[80494],"declarations":[{"constant":false,"id":80494,"mutability":"mutable","name":"newProtocolVersion","nameLocation":"22200:18:165","nodeType":"VariableDeclaration","scope":80513,"src":"22192:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80493,"name":"uint256","nodeType":"ElementaryTypeName","src":"22192:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80501,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80495,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"22221:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22221:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22231:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"22221:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22244:15:165","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"22221:38:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":80499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22262:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"22221:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22192:71:165"},{"expression":{"id":80507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80502,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"22273:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22273:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22283:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"22273:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"22296:15:165","memberName":"protocolVersion","nodeType":"MemberAccess","referencedDeclaration":83210,"src":"22273:38:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80506,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80494,"src":"22314:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22273:59:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80508,"nodeType":"ExpressionStatement","src":"22273:59:165"},{"eventCall":{"arguments":[{"id":80510,"name":"newProtocolVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80494,"src":"22371:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80509,"name":"ProtocolVersionChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74513,"src":"22348:22:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":80511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22348:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80512,"nodeType":"EmitStatement","src":"22343:47:165"}]},"baseFunctions":[74871],"documentation":{"id":80488,"nodeType":"StructuredDocumentation","src":"22004:123:165","text":" @dev Bumps the version of the protocol, used by nodes.\n Emits `ProtocolVersionChanged` event."},"functionSelector":"85dd663d","implemented":true,"kind":"function","modifiers":[{"id":80491,"kind":"modifierInvocation","modifierName":{"id":80490,"name":"onlyOwner","nameLocations":["22172:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"22172:9:165"},"nodeType":"ModifierInvocation","src":"22172:9:165"}],"name":"bumpProtocolVersion","nameLocation":"22141:19:165","parameters":{"id":80489,"nodeType":"ParameterList","parameters":[],"src":"22160:2:165"},"returnParameters":{"id":80492,"nodeType":"ParameterList","parameters":[],"src":"22182:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80524,"nodeType":"FunctionDefinition","src":"22452:59:165","nodes":[],"body":{"id":80523,"nodeType":"Block","src":"22486:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80520,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43833,"src":"22496:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22496:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80522,"nodeType":"ExpressionStatement","src":"22496:8:165"}]},"baseFunctions":[74875],"documentation":{"id":80515,"nodeType":"StructuredDocumentation","src":"22403:44:165","text":" @dev Pauses the contract."},"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":80518,"kind":"modifierInvocation","modifierName":{"id":80517,"name":"onlyOwner","nameLocations":["22476:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"22476:9:165"},"nodeType":"ModifierInvocation","src":"22476:9:165"}],"name":"pause","nameLocation":"22461:5:165","parameters":{"id":80516,"nodeType":"ParameterList","parameters":[],"src":"22466:2:165"},"returnParameters":{"id":80519,"nodeType":"ParameterList","parameters":[],"src":"22486:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80534,"nodeType":"FunctionDefinition","src":"22568:63:165","nodes":[],"body":{"id":80533,"nodeType":"Block","src":"22604:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80530,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43857,"src":"22614:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22614:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80532,"nodeType":"ExpressionStatement","src":"22614:10:165"}]},"baseFunctions":[74879],"documentation":{"id":80525,"nodeType":"StructuredDocumentation","src":"22517:46:165","text":" @dev Unpauses the contract."},"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":80528,"kind":"modifierInvocation","modifierName":{"id":80527,"name":"onlyOwner","nameLocations":["22594:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"22594:9:165"},"nodeType":"ModifierInvocation","src":"22594:9:165"}],"name":"unpause","nameLocation":"22577:7:165","parameters":{"id":80526,"nodeType":"ParameterList","parameters":[],"src":"22584:2:165"},"returnParameters":{"id":80529,"nodeType":"ParameterList","parameters":[],"src":"22604:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80589,"nodeType":"FunctionDefinition","src":"22732:385:165","nodes":[],"body":{"id":80588,"nodeType":"Block","src":"22770:347:165","nodes":[],"statements":[{"assignments":[80540],"declarations":[{"constant":false,"id":80540,"mutability":"mutable","name":"router","nameLocation":"22796:6:165","nodeType":"VariableDeclaration","scope":80588,"src":"22780:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80539,"nodeType":"UserDefinedTypeName","pathNode":{"id":80538,"name":"Storage","nameLocations":["22780:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"22780:7:165"},"referencedDeclaration":74493,"src":"22780:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80543,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80541,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"22805:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22805:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"22780:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80545,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80540,"src":"22833:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22840:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"22833:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22853:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83154,"src":"22833:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22869:1:165","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":80549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22861:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22861:7:165","typeDescriptions":{}}},"id":80551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22861:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22833:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80553,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74566,"src":"22873:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22873:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80544,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22825:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22825:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80556,"nodeType":"ExpressionStatement","src":"22825:72:165"},{"assignments":[80558],"declarations":[{"constant":false,"id":80558,"mutability":"mutable","name":"genesisHash","nameLocation":"22916:11:165","nodeType":"VariableDeclaration","scope":80588,"src":"22908:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22908:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80564,"initialValue":{"arguments":[{"expression":{"expression":{"id":80560,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80540,"src":"22940:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22947:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"22940:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22960:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"22940:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80559,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"22930:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22930:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22908:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80566,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80558,"src":"22986:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23009:1:165","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":80568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23001:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23001:7:165","typeDescriptions":{}}},"id":80570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23001:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"22986:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80572,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74569,"src":"23013:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23013:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22978:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22978:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80575,"nodeType":"ExpressionStatement","src":"22978:57:165"},{"expression":{"id":80586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":80576,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80540,"src":"23046:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23053:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"23046:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23066:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83154,"src":"23046:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":80582,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80540,"src":"23083:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23090:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"23083:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23103:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":83156,"src":"23083:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":80581,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"23073:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23073:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23046:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80587,"nodeType":"ExpressionStatement","src":"23046:64:165"}]},"baseFunctions":[74883],"documentation":{"id":80535,"nodeType":"StructuredDocumentation","src":"22656:71:165","text":" @dev Looks up the genesis hash from previous blocks."},"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[],"name":"lookupGenesisHash","nameLocation":"22741:17:165","parameters":{"id":80536,"nodeType":"ParameterList","parameters":[],"src":"22758:2:165"},"returnParameters":{"id":80537,"nodeType":"ParameterList","parameters":[],"src":"22770:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80718,"nodeType":"FunctionDefinition","src":"23979:986:165","nodes":[],"body":{"id":80717,"nodeType":"Block","src":"24123:842:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24150:1:165","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":80606,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"24141:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24141:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24156:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24141:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80611,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"24159:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24159:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80605,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24133:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24133:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80614,"nodeType":"ExpressionStatement","src":"24133:41:165"},{"assignments":[80617],"declarations":[{"constant":false,"id":80617,"mutability":"mutable","name":"router","nameLocation":"24201:6:165","nodeType":"VariableDeclaration","scope":80717,"src":"24185:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80616,"nodeType":"UserDefinedTypeName","pathNode":{"id":80615,"name":"Storage","nameLocations":["24185:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"24185:7:165"},"referencedDeclaration":74493,"src":"24185:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80620,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80618,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"24210:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24210:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24185:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80622,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80617,"src":"24237:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24244:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"24237:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24257:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83154,"src":"24237:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24273:1:165","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":80626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24265:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24265:7:165","typeDescriptions":{}}},"id":80628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24265:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24237:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80630,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74575,"src":"24277:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24277:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80621,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24229:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24229:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80633,"nodeType":"ExpressionStatement","src":"24229:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"},"id":80643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80635,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80617,"src":"24330:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24337:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"24330:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24350:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"24330:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80639,"indexExpression":{"id":80638,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80592,"src":"24356:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24330:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80640,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"24368:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24373:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"24368:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83139_$","typeString":"type(enum Gear.CodeState)"}},"id":80642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24383:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83134,"src":"24368:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"src":"24330:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80644,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74578,"src":"24392:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24392:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80634,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24322:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24322:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80647,"nodeType":"ExpressionStatement","src":"24322:107:165"},{"assignments":[80650],"declarations":[{"constant":false,"id":80650,"mutability":"mutable","name":"_wrappedVara","nameLocation":"24453:12:165","nodeType":"VariableDeclaration","scope":80717,"src":"24440:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"},"typeName":{"id":80649,"nodeType":"UserDefinedTypeName","pathNode":{"id":80648,"name":"IWrappedVara","nameLocations":["24440:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75024,"src":"24440:12:165"},"referencedDeclaration":75024,"src":"24440:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80656,"initialValue":{"arguments":[{"expression":{"expression":{"id":80652,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80617,"src":"24481:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24488:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"24481:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24502:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"24481:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80651,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"24468:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":80655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24468:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"24440:74:165"},{"assignments":[80658],"declarations":[{"constant":false,"id":80658,"mutability":"mutable","name":"baseFee","nameLocation":"24533:7:165","nodeType":"VariableDeclaration","scope":80717,"src":"24525:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80657,"name":"uint256","nodeType":"ElementaryTypeName","src":"24525:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80662,"initialValue":{"expression":{"expression":{"id":80659,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80617,"src":"24543:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24550:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"24543:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80661,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24563:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"24543:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24525:66:165"},{"clauses":[{"block":{"id":80677,"nodeType":"Block","src":"24684:2:165","statements":[]},"errorName":"","id":80678,"nodeType":"TryCatchClause","src":"24684:2:165"},{"block":{"id":80679,"nodeType":"Block","src":"24693:2:165","statements":[]},"errorName":"","id":80680,"nodeType":"TryCatchClause","src":"24687:8:165"}],"externalCall":{"arguments":[{"expression":{"id":80665,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24625:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24629:6:165","memberName":"sender","nodeType":"MemberAccess","src":"24625:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80669,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24645:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":80668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24637:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80667,"name":"address","nodeType":"ElementaryTypeName","src":"24637:7:165","typeDescriptions":{}}},"id":80670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24637:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80671,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80658,"src":"24652:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80672,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80594,"src":"24661:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80673,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80596,"src":"24672:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80674,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80598,"src":"24676:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80675,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80600,"src":"24680:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80663,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80650,"src":"24605:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":80664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24618:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"24605:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24605:78:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80681,"nodeType":"TryStatement","src":"24601:94:165"},{"assignments":[80683],"declarations":[{"constant":false,"id":80683,"mutability":"mutable","name":"success","nameLocation":"24709:7:165","nodeType":"VariableDeclaration","scope":80717,"src":"24704:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80682,"name":"bool","nodeType":"ElementaryTypeName","src":"24704:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80694,"initialValue":{"arguments":[{"expression":{"id":80686,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24745:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24749:6:165","memberName":"sender","nodeType":"MemberAccess","src":"24745:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80690,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24765:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":80689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24757:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80688,"name":"address","nodeType":"ElementaryTypeName","src":"24757:7:165","typeDescriptions":{}}},"id":80691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24757:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80692,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80658,"src":"24772:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80684,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80650,"src":"24719:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":80685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24732:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"24719:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24719:61:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"24704:76:165"},{"expression":{"arguments":[{"id":80696,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80683,"src":"24798:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80697,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74611,"src":"24807:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24807:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80695,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24790:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24790:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80700,"nodeType":"ExpressionStatement","src":"24790:38:165"},{"expression":{"id":80711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80701,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80617,"src":"24839:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24846:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"24839:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24859:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"24839:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80707,"indexExpression":{"id":80704,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80592,"src":"24865:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24839:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80708,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"24876:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24881:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"24876:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83139_$","typeString":"type(enum Gear.CodeState)"}},"id":80710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24891:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"24876:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"src":"24839:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"id":80712,"nodeType":"ExpressionStatement","src":"24839:71:165"},{"eventCall":{"arguments":[{"id":80714,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80592,"src":"24950:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80713,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74525,"src":"24926:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24926:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80716,"nodeType":"EmitStatement","src":"24921:37:165"}]},"baseFunctions":[74897],"documentation":{"id":80590,"nodeType":"StructuredDocumentation","src":"23123:851:165","text":" @dev Requests code validation for the given code ID.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee()`\n in the WVARA ERC20 token.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter."},"functionSelector":"8c4ace6a","implemented":true,"kind":"function","modifiers":[{"id":80603,"kind":"modifierInvocation","modifierName":{"id":80602,"name":"whenNotPaused","nameLocations":["24105:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"24105:13:165"},"nodeType":"ModifierInvocation","src":"24105:13:165"}],"name":"requestCodeValidation","nameLocation":"23988:21:165","parameters":{"id":80601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80592,"mutability":"mutable","name":"_codeId","nameLocation":"24018:7:165","nodeType":"VariableDeclaration","scope":80718,"src":"24010:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24010:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80594,"mutability":"mutable","name":"_deadline","nameLocation":"24035:9:165","nodeType":"VariableDeclaration","scope":80718,"src":"24027:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80593,"name":"uint256","nodeType":"ElementaryTypeName","src":"24027:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80596,"mutability":"mutable","name":"_v","nameLocation":"24052:2:165","nodeType":"VariableDeclaration","scope":80718,"src":"24046:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80595,"name":"uint8","nodeType":"ElementaryTypeName","src":"24046:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80598,"mutability":"mutable","name":"_r","nameLocation":"24064:2:165","nodeType":"VariableDeclaration","scope":80718,"src":"24056:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24056:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80600,"mutability":"mutable","name":"_s","nameLocation":"24076:2:165","nodeType":"VariableDeclaration","scope":80718,"src":"24068:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24068:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24009:70:165"},"returnParameters":{"id":80604,"nodeType":"ParameterList","parameters":[],"src":"24123:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":80984,"nodeType":"FunctionDefinition","src":"26472:2418:165","nodes":[],"body":{"id":80983,"nodeType":"Block","src":"26782:2108:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":80747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26809:1:165","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":80746,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"26800:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26800:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26815:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26800:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80751,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"26818:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26818:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26792:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26792:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80754,"nodeType":"ExpressionStatement","src":"26792:41:165"},{"assignments":[80757],"declarations":[{"constant":false,"id":80757,"mutability":"mutable","name":"router","nameLocation":"26860:6:165","nodeType":"VariableDeclaration","scope":80983,"src":"26844:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80756,"nodeType":"UserDefinedTypeName","pathNode":{"id":80755,"name":"Storage","nameLocations":["26844:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"26844:7:165"},"referencedDeclaration":74493,"src":"26844:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80760,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80758,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"26869:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26869:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"26844:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80762,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80757,"src":"26896:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26903:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"26896:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26916:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83154,"src":"26896:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26932:1:165","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":80766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26924:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26924:7:165","typeDescriptions":{}}},"id":80768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26924:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"26896:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80770,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74575,"src":"26936:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26936:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80761,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26888:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26888:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80773,"nodeType":"ExpressionStatement","src":"26888:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"},"id":80783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80775,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80757,"src":"26989:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26996:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"26989:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27009:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"26989:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80779,"indexExpression":{"id":80778,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80723,"src":"27015:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26989:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":80780,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"27027:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27032:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"27027:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83139_$","typeString":"type(enum Gear.CodeState)"}},"id":80782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27042:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":83134,"src":"27027:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"src":"26989:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80784,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74578,"src":"27051:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27051:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80774,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"26981:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26981:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80787,"nodeType":"ExpressionStatement","src":"26981:107:165"},{"assignments":[80789],"declarations":[{"constant":false,"id":80789,"mutability":"mutable","name":"_blobHashesLength","nameLocation":"27107:17:165","nodeType":"VariableDeclaration","scope":80983,"src":"27099:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80788,"name":"uint256","nodeType":"ElementaryTypeName","src":"27099:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80791,"initialValue":{"hexValue":"30","id":80790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27127:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27099:29:165"},{"body":{"id":80807,"nodeType":"Block","src":"27151:142:165","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":80794,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80789,"src":"27178:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80793,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"27169:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27169:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":80798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27208:1:165","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":80797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27200:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27200:7:165","typeDescriptions":{}}},"id":80799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27200:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27169:41:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80803,"nodeType":"IfStatement","src":"27165:85:165","trueBody":{"id":80802,"nodeType":"Block","src":"27212:38:165","statements":[{"id":80801,"nodeType":"Break","src":"27230:5:165"}]}},{"expression":{"id":80805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27263:19:165","subExpression":{"id":80804,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80789,"src":"27263:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80806,"nodeType":"ExpressionStatement","src":"27263:19:165"}]},"condition":{"hexValue":"74727565","id":80792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27145:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":80808,"nodeType":"WhileStatement","src":"27138:155:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80810,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80726,"src":"27311:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27323:6:165","memberName":"length","nodeType":"MemberAccess","src":"27311:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80812,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80789,"src":"27333:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27311:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"expression":{"id":80815,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80726,"src":"27376:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27388:6:165","memberName":"length","nodeType":"MemberAccess","src":"27376:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80817,"name":"_blobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80789,"src":"27396:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80814,"name":"InvalidBlobHashesLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74585,"src":"27352:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":80818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27352:62:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80809,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27303:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27303:112:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80820,"nodeType":"ExpressionStatement","src":"27303:112:165"},{"body":{"id":80853,"nodeType":"Block","src":"27475:174:165","statements":[{"assignments":[80833],"declarations":[{"constant":false,"id":80833,"mutability":"mutable","name":"expectedBlobHash","nameLocation":"27497:16:165","nodeType":"VariableDeclaration","scope":80853,"src":"27489:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27489:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80837,"initialValue":{"arguments":[{"id":80835,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"27525:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80834,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"27516:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":80836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27516:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27489:38:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":80839,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80726,"src":"27549:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80841,"indexExpression":{"id":80840,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"27561:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27549:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80842,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80833,"src":"27567:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27549:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80845,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"27601:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":80846,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80726,"src":"27604:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80848,"indexExpression":{"id":80847,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"27616:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27604:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80849,"name":"expectedBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80833,"src":"27620:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80844,"name":"InvalidBlobHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74594,"src":"27585:15:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_error_$","typeString":"function (uint256,bytes32,bytes32) pure returns (error)"}},"id":80850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27585:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27541:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27541:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80852,"nodeType":"ExpressionStatement","src":"27541:97:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80825,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"27446:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80826,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80726,"src":"27450:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":80827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27462:6:165","memberName":"length","nodeType":"MemberAccess","src":"27450:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27446:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80854,"initializationExpression":{"assignments":[80822],"declarations":[{"constant":false,"id":80822,"mutability":"mutable","name":"i","nameLocation":"27439:1:165","nodeType":"VariableDeclaration","scope":80854,"src":"27431:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80821,"name":"uint256","nodeType":"ElementaryTypeName","src":"27431:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80824,"initialValue":{"hexValue":"30","id":80823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27443:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27431:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27470:3:165","subExpression":{"id":80829,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80822,"src":"27470:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80831,"nodeType":"ExpressionStatement","src":"27470:3:165"},"nodeType":"ForStatement","src":"27426:223:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80856,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"27725:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27731:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"27725:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":80858,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80728,"src":"27744:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27725:28:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80861,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80728,"src":"27772:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80860,"name":"ExpiredSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74599,"src":"27755:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$_t_error_$","typeString":"function (uint256) pure returns (error)"}},"id":80862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27755:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80855,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"27717:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27717:66:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80864,"nodeType":"ExpressionStatement","src":"27717:66:165"},{"assignments":[80866],"declarations":[{"constant":false,"id":80866,"mutability":"mutable","name":"structHash","nameLocation":"27802:10:165","nodeType":"VariableDeclaration","scope":80983,"src":"27794:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27794:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80885,"initialValue":{"arguments":[{"arguments":[{"id":80870,"name":"REQUEST_CODE_VALIDATION_ON_BEHALF_TYPEHASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79522,"src":"27866:42:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80871,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80721,"src":"27926:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80872,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80723,"src":"27954:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":80876,"name":"_blobHashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80726,"src":"28006:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}],"expression":{"id":80874,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27989:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27993:12:165","memberName":"encodePacked","nodeType":"MemberAccess","src":"27989:16:165","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27989:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80873,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27979:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27979:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":80880,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80721,"src":"28047:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80879,"name":"_useNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43672,"src":"28037:9:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_uint256_$","typeString":"function (address) returns (uint256)"}},"id":80881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28037:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80882,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80728,"src":"28076:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80868,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27838:3:165","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":80869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27842:6:165","memberName":"encode","nodeType":"MemberAccess","src":"27838:10:165","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":80883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27838:261:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":80867,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27815:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27815:294:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27794:315:165"},{"assignments":[80887],"declarations":[{"constant":false,"id":80887,"mutability":"mutable","name":"hash","nameLocation":"28128:4:165","nodeType":"VariableDeclaration","scope":80983,"src":"28120:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80886,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28120:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80891,"initialValue":{"arguments":[{"id":80889,"name":"structHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80866,"src":"28152:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80888,"name":"_hashTypedDataV4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44218,"src":"28135:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":80890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28135:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"28120:43:165"},{"assignments":[80893],"declarations":[{"constant":false,"id":80893,"mutability":"mutable","name":"signer","nameLocation":"28182:6:165","nodeType":"VariableDeclaration","scope":80983,"src":"28174:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80892,"name":"address","nodeType":"ElementaryTypeName","src":"28174:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80901,"initialValue":{"arguments":[{"id":80896,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80887,"src":"28205:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80897,"name":"_v1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80730,"src":"28211:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80898,"name":"_r1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80732,"src":"28216:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80899,"name":"_s1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80734,"src":"28221:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80894,"name":"ECDSA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"28191:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ECDSA_$51038_$","typeString":"type(library ECDSA)"}},"id":80895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28197:7:165","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":50988,"src":"28191:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":80900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28191:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"28174:51:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80903,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80893,"src":"28243:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80904,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80721,"src":"28253:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"28243:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":80907,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80893,"src":"28279:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80908,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80721,"src":"28287:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":80906,"name":"InvalidSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74606,"src":"28265:13:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$","typeString":"function (address,address) pure returns (error)"}},"id":80909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28265:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80902,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"28235:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28235:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80911,"nodeType":"ExpressionStatement","src":"28235:64:165"},{"assignments":[80914],"declarations":[{"constant":false,"id":80914,"mutability":"mutable","name":"_wrappedVara","nameLocation":"28323:12:165","nodeType":"VariableDeclaration","scope":80983,"src":"28310:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"},"typeName":{"id":80913,"nodeType":"UserDefinedTypeName","pathNode":{"id":80912,"name":"IWrappedVara","nameLocations":["28310:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75024,"src":"28310:12:165"},"referencedDeclaration":75024,"src":"28310:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":80920,"initialValue":{"arguments":[{"expression":{"expression":{"id":80916,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80757,"src":"28351:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28358:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"28351:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28372:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"28351:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80915,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"28338:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":80919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28338:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"28310:74:165"},{"assignments":[80922],"declarations":[{"constant":false,"id":80922,"mutability":"mutable","name":"fee","nameLocation":"28403:3:165","nodeType":"VariableDeclaration","scope":80983,"src":"28395:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80921,"name":"uint256","nodeType":"ElementaryTypeName","src":"28395:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80930,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80923,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80757,"src":"28421:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28428:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"28421:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28441:28:165","memberName":"requestCodeValidationBaseFee","nodeType":"MemberAccess","referencedDeclaration":83204,"src":"28421:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":80926,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80757,"src":"28472:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28479:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"28472:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28492:29:165","memberName":"requestCodeValidationExtraFee","nodeType":"MemberAccess","referencedDeclaration":83207,"src":"28472:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28421:100:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28395:126:165"},{"clauses":[{"block":{"id":80944,"nodeType":"Block","src":"28613:2:165","statements":[]},"errorName":"","id":80945,"nodeType":"TryCatchClause","src":"28613:2:165"},{"block":{"id":80946,"nodeType":"Block","src":"28622:2:165","statements":[]},"errorName":"","id":80947,"nodeType":"TryCatchClause","src":"28616:8:165"}],"externalCall":{"arguments":[{"id":80933,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80721,"src":"28555:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80936,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28575:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":80935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28567:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80934,"name":"address","nodeType":"ElementaryTypeName","src":"28567:7:165","typeDescriptions":{}}},"id":80937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28567:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80938,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80922,"src":"28582:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80939,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80728,"src":"28587:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80940,"name":"_v2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80736,"src":"28598:3:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":80941,"name":"_r2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80738,"src":"28603:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80942,"name":"_s2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80740,"src":"28608:3:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80931,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80914,"src":"28535:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":80932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28548:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"28535:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":80943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28535:77:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80948,"nodeType":"TryStatement","src":"28531:93:165"},{"assignments":[80950],"declarations":[{"constant":false,"id":80950,"mutability":"mutable","name":"success","nameLocation":"28638:7:165","nodeType":"VariableDeclaration","scope":80983,"src":"28633:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80949,"name":"bool","nodeType":"ElementaryTypeName","src":"28633:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80960,"initialValue":{"arguments":[{"id":80953,"name":"_requester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80721,"src":"28674:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":80956,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28694:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":80955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28686:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80954,"name":"address","nodeType":"ElementaryTypeName","src":"28686:7:165","typeDescriptions":{}}},"id":80957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28686:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80958,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80922,"src":"28701:3:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80951,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80914,"src":"28648:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":80952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28661:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"28648:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":80959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28648:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"28633:72:165"},{"expression":{"arguments":[{"id":80962,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80950,"src":"28723:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80963,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74611,"src":"28732:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28732:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"28715:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28715:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80966,"nodeType":"ExpressionStatement","src":"28715:38:165"},{"expression":{"id":80977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":80967,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80757,"src":"28764:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80971,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28771:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"28764:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28784:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"28764:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":80973,"indexExpression":{"id":80970,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80723,"src":"28790:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28764:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":80974,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"28801:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":80975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28806:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"28801:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83139_$","typeString":"type(enum Gear.CodeState)"}},"id":80976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28816:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"28801:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"src":"28764:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"id":80978,"nodeType":"ExpressionStatement","src":"28764:71:165"},{"eventCall":{"arguments":[{"id":80980,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80723,"src":"28875:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80979,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74525,"src":"28851:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28851:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80982,"nodeType":"EmitStatement","src":"28846:37:165"}]},"baseFunctions":[74922],"documentation":{"id":80719,"nodeType":"StructuredDocumentation","src":"24971:1496:165","text":" @dev Requests code validation for the given code ID on behalf of someone else.\n This method is expected to be called within EIP-4844/EIP-7594 transaction and will have sidecar\n attached to it containing WASM bytecode. On EVM, we can only verify that there was\n at least 1 blobhash in a transaction.\n Note that this function charges fee equal to `IRouter(router).requestCodeValidationBaseFee() + IRouter(router).requestCodeValidationExtraFee()`\n in the WVARA ERC20 token.\n @param _requester The address of the requester on behalf of whom the code validation is requested.\n @param _codeId The expected code ID for which the validation is requested.\n It's calculated as `gprimitives::CodeId::generate(wasm_code)` (blake2b hash).\n @param _blobHashes The array of blob hashes. `blobhash(i)` must be equal to `_blobHashes[i]`.\n This is needed to verify that the transaction has expected blobs attached.\n @param _deadline Deadline for the transaction to be executed.\n @param _v1 ECDSA signature parameter (for requestCodeValidation).\n @param _r1 ECDSA signature parameter (for requestCodeValidation).\n @param _s1 ECDSA signature parameter (for requestCodeValidation).\n @param _v2 ECDSA signature parameter (for permit).\n @param _r2 ECDSA signature parameter (for permit).\n @param _s2 ECDSA signature parameter (for permit)."},"functionSelector":"f0fd702a","implemented":true,"kind":"function","modifiers":[{"id":80743,"kind":"modifierInvocation","modifierName":{"id":80742,"name":"whenNotPaused","nameLocations":["26768:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"26768:13:165"},"nodeType":"ModifierInvocation","src":"26768:13:165"}],"name":"requestCodeValidationOnBehalf","nameLocation":"26481:29:165","parameters":{"id":80741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80721,"mutability":"mutable","name":"_requester","nameLocation":"26528:10:165","nodeType":"VariableDeclaration","scope":80984,"src":"26520:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80720,"name":"address","nodeType":"ElementaryTypeName","src":"26520:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80723,"mutability":"mutable","name":"_codeId","nameLocation":"26556:7:165","nodeType":"VariableDeclaration","scope":80984,"src":"26548:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80722,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26548:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80726,"mutability":"mutable","name":"_blobHashes","nameLocation":"26592:11:165","nodeType":"VariableDeclaration","scope":80984,"src":"26573:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":80724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26573:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80725,"nodeType":"ArrayTypeName","src":"26573:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":80728,"mutability":"mutable","name":"_deadline","nameLocation":"26621:9:165","nodeType":"VariableDeclaration","scope":80984,"src":"26613:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80727,"name":"uint256","nodeType":"ElementaryTypeName","src":"26613:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80730,"mutability":"mutable","name":"_v1","nameLocation":"26646:3:165","nodeType":"VariableDeclaration","scope":80984,"src":"26640:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80729,"name":"uint8","nodeType":"ElementaryTypeName","src":"26640:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80732,"mutability":"mutable","name":"_r1","nameLocation":"26667:3:165","nodeType":"VariableDeclaration","scope":80984,"src":"26659:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26659:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80734,"mutability":"mutable","name":"_s1","nameLocation":"26688:3:165","nodeType":"VariableDeclaration","scope":80984,"src":"26680:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26680:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80736,"mutability":"mutable","name":"_v2","nameLocation":"26707:3:165","nodeType":"VariableDeclaration","scope":80984,"src":"26701:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80735,"name":"uint8","nodeType":"ElementaryTypeName","src":"26701:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":80738,"mutability":"mutable","name":"_r2","nameLocation":"26728:3:165","nodeType":"VariableDeclaration","scope":80984,"src":"26720:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26720:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80740,"mutability":"mutable","name":"_s2","nameLocation":"26749:3:165","nodeType":"VariableDeclaration","scope":80984,"src":"26741:11:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26741:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"26510:248:165"},"returnParameters":{"id":80744,"nodeType":"ParameterList","parameters":[],"src":"26782:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81029,"nodeType":"FunctionDefinition","src":"29970:396:165","nodes":[],"body":{"id":81028,"nodeType":"Block","src":"30124:242:165","nodes":[],"statements":[{"assignments":[80999,null],"declarations":[{"constant":false,"id":80999,"mutability":"mutable","name":"mirror","nameLocation":"30143:6:165","nodeType":"VariableDeclaration","scope":81028,"src":"30135:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80998,"name":"address","nodeType":"ElementaryTypeName","src":"30135:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81005,"initialValue":{"arguments":[{"id":81001,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80987,"src":"30169:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81002,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80989,"src":"30178:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":81003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30185:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81000,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81556,"src":"30154:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30154:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"30134:56:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81010,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80991,"src":"30241:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30273:1:165","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":81012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30265:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81011,"name":"address","nodeType":"ElementaryTypeName","src":"30265:7:165","typeDescriptions":{}}},"id":81014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30265:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30241:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81018,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80991,"src":"30291:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"30241:70:165","trueExpression":{"expression":{"id":81016,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"30278:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30282:6:165","memberName":"sender","nodeType":"MemberAccess","src":"30278:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81020,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79976,"src":"30313:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30327:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":81023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30333:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":81007,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80999,"src":"30209:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81006,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"30201:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30201:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30230:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"30201:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30201:134:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81025,"nodeType":"ExpressionStatement","src":"30201:134:165"},{"expression":{"id":81026,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80999,"src":"30353:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80997,"id":81027,"nodeType":"Return","src":"30346:13:165"}]},"baseFunctions":[74934],"documentation":{"id":80985,"nodeType":"StructuredDocumentation","src":"28896:1069:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, and initializer.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":80994,"kind":"modifierInvocation","modifierName":{"id":80993,"name":"whenNotPaused","nameLocations":["30080:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"30080:13:165"},"nodeType":"ModifierInvocation","src":"30080:13:165"}],"name":"createProgram","nameLocation":"29979:13:165","parameters":{"id":80992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80987,"mutability":"mutable","name":"_codeId","nameLocation":"30001:7:165","nodeType":"VariableDeclaration","scope":81029,"src":"29993:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29993:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80989,"mutability":"mutable","name":"_salt","nameLocation":"30018:5:165","nodeType":"VariableDeclaration","scope":81029,"src":"30010:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30010:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80991,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"30033:20:165","nodeType":"VariableDeclaration","scope":81029,"src":"30025:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80990,"name":"address","nodeType":"ElementaryTypeName","src":"30025:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29992:62:165"},"returnParameters":{"id":80997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81029,"src":"30111:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80995,"name":"address","nodeType":"ElementaryTypeName","src":"30111:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30110:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81134,"nodeType":"FunctionDefinition","src":"31839:1031:165","nodes":[],"body":{"id":81133,"nodeType":"Block","src":"32144:726:165","nodes":[],"statements":[{"assignments":[81054,81057],"declarations":[{"constant":false,"id":81054,"mutability":"mutable","name":"mirror","nameLocation":"32163:6:165","nodeType":"VariableDeclaration","scope":81133,"src":"32155:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81053,"name":"address","nodeType":"ElementaryTypeName","src":"32155:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81057,"mutability":"mutable","name":"router","nameLocation":"32187:6:165","nodeType":"VariableDeclaration","scope":81133,"src":"32171:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81056,"nodeType":"UserDefinedTypeName","pathNode":{"id":81055,"name":"Storage","nameLocations":["32171:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"32171:7:165"},"referencedDeclaration":74493,"src":"32171:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81063,"initialValue":{"arguments":[{"id":81059,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81032,"src":"32212:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81060,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81034,"src":"32221:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":81061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32228:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81058,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81556,"src":"32197:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32197:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"32154:79:165"},{"assignments":[81066],"declarations":[{"constant":false,"id":81066,"mutability":"mutable","name":"_wrappedVara","nameLocation":"32257:12:165","nodeType":"VariableDeclaration","scope":81133,"src":"32244:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"},"typeName":{"id":81065,"nodeType":"UserDefinedTypeName","pathNode":{"id":81064,"name":"IWrappedVara","nameLocations":["32244:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75024,"src":"32244:12:165"},"referencedDeclaration":75024,"src":"32244:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81072,"initialValue":{"arguments":[{"expression":{"expression":{"id":81068,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81057,"src":"32285:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32292:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"32285:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32306:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"32285:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81067,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"32272:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":81071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32272:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"32244:74:165"},{"clauses":[{"block":{"id":81087,"nodeType":"Block","src":"32430:2:165","statements":[]},"errorName":"","id":81088,"nodeType":"TryCatchClause","src":"32430:2:165"},{"block":{"id":81089,"nodeType":"Block","src":"32439:2:165","statements":[]},"errorName":"","id":81090,"nodeType":"TryCatchClause","src":"32433:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81075,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"32353:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32357:6:165","memberName":"sender","nodeType":"MemberAccess","src":"32353:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81079,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"32373:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":81078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32365:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81077,"name":"address","nodeType":"ElementaryTypeName","src":"32365:7:165","typeDescriptions":{}}},"id":81080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32365:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81081,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81038,"src":"32380:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81082,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81040,"src":"32407:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81083,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81042,"src":"32418:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81084,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81044,"src":"32422:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81085,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81046,"src":"32426:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81073,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81066,"src":"32333:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":81074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32346:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"32333:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32333:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81091,"nodeType":"TryStatement","src":"32329:112:165"},{"assignments":[81093],"declarations":[{"constant":false,"id":81093,"mutability":"mutable","name":"success","nameLocation":"32455:7:165","nodeType":"VariableDeclaration","scope":81133,"src":"32450:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81092,"name":"bool","nodeType":"ElementaryTypeName","src":"32450:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81104,"initialValue":{"arguments":[{"expression":{"id":81096,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"32491:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32495:6:165","memberName":"sender","nodeType":"MemberAccess","src":"32491:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81100,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"32511:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":81099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32503:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81098,"name":"address","nodeType":"ElementaryTypeName","src":"32503:7:165","typeDescriptions":{}}},"id":81101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32503:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81102,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81038,"src":"32518:25:165","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":81094,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81066,"src":"32465:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":81095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32478:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"32465:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32465:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"32450:94:165"},{"expression":{"arguments":[{"id":81106,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81093,"src":"32562:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81107,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74611,"src":"32571:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32571:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81105,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"32554:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32554:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81110,"nodeType":"ExpressionStatement","src":"32554:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81115,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81036,"src":"32660:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32692:1:165","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":81117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32684:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81116,"name":"address","nodeType":"ElementaryTypeName","src":"32684:7:165","typeDescriptions":{}}},"id":81119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32684:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"32660:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81123,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81036,"src":"32710:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"32660:70:165","trueExpression":{"expression":{"id":81121,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"32697:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32701:6:165","memberName":"sender","nodeType":"MemberAccess","src":"32697:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81125,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79976,"src":"32748:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":81126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32748:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":81127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32778:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":81128,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81038,"src":"32800:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81112,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81054,"src":"32611:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81111,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"32603:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32603:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"32632:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"32603:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32603:236:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81130,"nodeType":"ExpressionStatement","src":"32603:236:165"},{"expression":{"id":81131,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81054,"src":"32857:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81052,"id":81132,"nodeType":"Return","src":"32850:13:165"}]},"baseFunctions":[74956],"documentation":{"id":81030,"nodeType":"StructuredDocumentation","src":"30372:1462:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = true` without \"Solidity ABI Interface\" support,\n so it will be more gas efficient, but services like Etherscan won't be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0d91bf2a","implemented":true,"kind":"function","modifiers":[{"id":81049,"kind":"modifierInvocation","modifierName":{"id":81048,"name":"whenNotPaused","nameLocations":["32112:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"32112:13:165"},"nodeType":"ModifierInvocation","src":"32112:13:165"}],"name":"createProgramWithExecutableBalance","nameLocation":"31848:34:165","parameters":{"id":81047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81032,"mutability":"mutable","name":"_codeId","nameLocation":"31900:7:165","nodeType":"VariableDeclaration","scope":81134,"src":"31892:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31892:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81034,"mutability":"mutable","name":"_salt","nameLocation":"31925:5:165","nodeType":"VariableDeclaration","scope":81134,"src":"31917:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31917:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81036,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"31948:20:165","nodeType":"VariableDeclaration","scope":81134,"src":"31940:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81035,"name":"address","nodeType":"ElementaryTypeName","src":"31940:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81038,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"31986:25:165","nodeType":"VariableDeclaration","scope":81134,"src":"31978:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81037,"name":"uint128","nodeType":"ElementaryTypeName","src":"31978:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81040,"mutability":"mutable","name":"_deadline","nameLocation":"32029:9:165","nodeType":"VariableDeclaration","scope":81134,"src":"32021:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81039,"name":"uint256","nodeType":"ElementaryTypeName","src":"32021:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81042,"mutability":"mutable","name":"_v","nameLocation":"32054:2:165","nodeType":"VariableDeclaration","scope":81134,"src":"32048:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81041,"name":"uint8","nodeType":"ElementaryTypeName","src":"32048:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81044,"mutability":"mutable","name":"_r","nameLocation":"32074:2:165","nodeType":"VariableDeclaration","scope":81134,"src":"32066:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32066:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81046,"mutability":"mutable","name":"_s","nameLocation":"32094:2:165","nodeType":"VariableDeclaration","scope":81134,"src":"32086:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32086:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"31882:220:165"},"returnParameters":{"id":81052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81134,"src":"32135:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81050,"name":"address","nodeType":"ElementaryTypeName","src":"32135:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32134:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81180,"nodeType":"FunctionDefinition","src":"34032:448:165","nodes":[],"body":{"id":81179,"nodeType":"Block","src":"34235:245:165","nodes":[],"statements":[{"assignments":[81151,null],"declarations":[{"constant":false,"id":81151,"mutability":"mutable","name":"mirror","nameLocation":"34254:6:165","nodeType":"VariableDeclaration","scope":81179,"src":"34246:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81150,"name":"address","nodeType":"ElementaryTypeName","src":"34246:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null],"id":81157,"initialValue":{"arguments":[{"id":81153,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81137,"src":"34280:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81154,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81139,"src":"34289:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"34296:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81152,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81556,"src":"34265:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34265:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"34245:57:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81162,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81141,"src":"34353:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34385:1:165","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":81164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"34377:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81163,"name":"address","nodeType":"ElementaryTypeName","src":"34377:7:165","typeDescriptions":{}}},"id":81166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34377:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"34353:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81170,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81141,"src":"34403:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"34353:70:165","trueExpression":{"expression":{"id":81168,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"34390:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34394:6:165","memberName":"sender","nodeType":"MemberAccess","src":"34390:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81172,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81143,"src":"34425:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"34440:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":81174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34447:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":81159,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81151,"src":"34321:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81158,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"34313:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34313:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"34342:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"34313:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34313:136:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81176,"nodeType":"ExpressionStatement","src":"34313:136:165"},{"expression":{"id":81177,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81151,"src":"34467:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81149,"id":81178,"nodeType":"Return","src":"34460:13:165"}]},"baseFunctions":[74970],"documentation":{"id":81135,"nodeType":"StructuredDocumentation","src":"32876:1151:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer and ABI interface.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":81146,"kind":"modifierInvocation","modifierName":{"id":81145,"name":"whenNotPaused","nameLocations":["34203:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"34203:13:165"},"nodeType":"ModifierInvocation","src":"34203:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"34041:29:165","parameters":{"id":81144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81137,"mutability":"mutable","name":"_codeId","nameLocation":"34088:7:165","nodeType":"VariableDeclaration","scope":81180,"src":"34080:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34080:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81139,"mutability":"mutable","name":"_salt","nameLocation":"34113:5:165","nodeType":"VariableDeclaration","scope":81180,"src":"34105:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34105:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81141,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"34136:20:165","nodeType":"VariableDeclaration","scope":81180,"src":"34128:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81140,"name":"address","nodeType":"ElementaryTypeName","src":"34128:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81143,"mutability":"mutable","name":"_abiInterface","nameLocation":"34174:13:165","nodeType":"VariableDeclaration","scope":81180,"src":"34166:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81142,"name":"address","nodeType":"ElementaryTypeName","src":"34166:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34070:123:165"},"returnParameters":{"id":81149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81148,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81180,"src":"34226:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81147,"name":"address","nodeType":"ElementaryTypeName","src":"34226:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34225:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81286,"nodeType":"FunctionDefinition","src":"36036:1080:165","nodes":[],"body":{"id":81285,"nodeType":"Block","src":"36387:729:165","nodes":[],"statements":[{"assignments":[81207,81210],"declarations":[{"constant":false,"id":81207,"mutability":"mutable","name":"mirror","nameLocation":"36406:6:165","nodeType":"VariableDeclaration","scope":81285,"src":"36398:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81206,"name":"address","nodeType":"ElementaryTypeName","src":"36398:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81210,"mutability":"mutable","name":"router","nameLocation":"36430:6:165","nodeType":"VariableDeclaration","scope":81285,"src":"36414:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81209,"nodeType":"UserDefinedTypeName","pathNode":{"id":81208,"name":"Storage","nameLocations":["36414:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"36414:7:165"},"referencedDeclaration":74493,"src":"36414:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81216,"initialValue":{"arguments":[{"id":81212,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81183,"src":"36455:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81213,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81185,"src":"36464:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":81214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"36471:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81211,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81556,"src":"36440:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function (bytes32,bytes32,bool) returns (address,struct IRouter.Storage storage pointer)"}},"id":81215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36440:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"nodeType":"VariableDeclarationStatement","src":"36397:80:165"},{"assignments":[81219],"declarations":[{"constant":false,"id":81219,"mutability":"mutable","name":"_wrappedVara","nameLocation":"36501:12:165","nodeType":"VariableDeclaration","scope":81285,"src":"36488:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"},"typeName":{"id":81218,"nodeType":"UserDefinedTypeName","pathNode":{"id":81217,"name":"IWrappedVara","nameLocations":["36488:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":75024,"src":"36488:12:165"},"referencedDeclaration":75024,"src":"36488:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":81225,"initialValue":{"arguments":[{"expression":{"expression":{"id":81221,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81210,"src":"36529:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36536:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"36529:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"36550:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"36529:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81220,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"36516:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":81224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36516:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"36488:74:165"},{"clauses":[{"block":{"id":81240,"nodeType":"Block","src":"36674:2:165","statements":[]},"errorName":"","id":81241,"nodeType":"TryCatchClause","src":"36674:2:165"},{"block":{"id":81242,"nodeType":"Block","src":"36683:2:165","statements":[]},"errorName":"","id":81243,"nodeType":"TryCatchClause","src":"36677:8:165"}],"externalCall":{"arguments":[{"expression":{"id":81228,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36597:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36601:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36597:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81232,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"36617:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":81231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36609:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81230,"name":"address","nodeType":"ElementaryTypeName","src":"36609:7:165","typeDescriptions":{}}},"id":81233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36609:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81234,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81191,"src":"36624:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81235,"name":"_deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81193,"src":"36651:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81236,"name":"_v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81195,"src":"36662:2:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81237,"name":"_r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81197,"src":"36666:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81238,"name":"_s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81199,"src":"36670:2:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81226,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81219,"src":"36577:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":81227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36590:6:165","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":46883,"src":"36577:19:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":81239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36577:96:165","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81244,"nodeType":"TryStatement","src":"36573:112:165"},{"assignments":[81246],"declarations":[{"constant":false,"id":81246,"mutability":"mutable","name":"success","nameLocation":"36699:7:165","nodeType":"VariableDeclaration","scope":81285,"src":"36694:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81245,"name":"bool","nodeType":"ElementaryTypeName","src":"36694:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81257,"initialValue":{"arguments":[{"expression":{"id":81249,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36735:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36739:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36735:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81253,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"36755:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":81252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36747:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81251,"name":"address","nodeType":"ElementaryTypeName","src":"36747:7:165","typeDescriptions":{}}},"id":81254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36747:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81255,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81191,"src":"36762:25:165","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":81247,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81219,"src":"36709:12:165","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":81248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36722:12:165","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46835,"src":"36709:25:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36709:79:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"36694:94:165"},{"expression":{"arguments":[{"id":81259,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81246,"src":"36806:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81260,"name":"TransferFromFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74611,"src":"36815:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36815:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81258,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"36798:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36798:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81263,"nodeType":"ExpressionStatement","src":"36798:38:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81268,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81187,"src":"36904:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36936:1:165","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":81270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"36928:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81269,"name":"address","nodeType":"ElementaryTypeName","src":"36928:7:165","typeDescriptions":{}}},"id":81272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36928:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"36904:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":81276,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81187,"src":"36954:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"36904:70:165","trueExpression":{"expression":{"id":81274,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"36941:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36945:6:165","memberName":"sender","nodeType":"MemberAccess","src":"36941:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81278,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81189,"src":"36992:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":81279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"37023:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":81280,"name":"_initialExecutableBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81191,"src":"37046:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81265,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81207,"src":"36855:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81264,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"36847:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":81266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36847:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":81267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"36876:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":74385,"src":"36847:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$_t_uint128_$returns$__$","typeString":"function (address,address,bool,uint128) external"}},"id":81281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36847:238:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81282,"nodeType":"ExpressionStatement","src":"36847:238:165"},{"expression":{"id":81283,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81207,"src":"37103:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":81205,"id":81284,"nodeType":"Return","src":"37096:13:165"}]},"baseFunctions":[74994],"documentation":{"id":81181,"nodeType":"StructuredDocumentation","src":"34486:1545:165","text":" @dev Creates new program (`Mirror`) with the given code ID, salt, initializer, ABI interface and initial executable balance\n in WVARA ERC20 token.\n Note that the program creation is deterministic, so if you try to create program with the same code ID and salt,\n you will get the same program address.\n Also note that the `Mirror` will be created with `isSmall = false` WITH \"Solidity ABI Interface\" support,\n so it will be less gas efficient, but services like Etherscan will be able to encode some calls and decode some events.\n As result of execution, the `ProgramCreated` event will be emitted.\n @param _codeId The code ID of the program to create. Must be in `CodeState.Validated` state.\n @param _salt The salt for the program creation.\n @param _overrideInitializer The initializer address for the program that can send the first (init) message to the program.\n If set to `address(0)`, `msg.sender` will be used as the initializer.\n @param _abiInterface The ABI interface address for the program.\n @param _initialExecutableBalance The value in WVARA ERC20 token to transfer to executable balance to `Mirror` after creation.\n @param _deadline Deadline for the transaction to be executed.\n @param _v ECDSA signature parameter.\n @param _r ECDSA signature parameter.\n @param _s ECDSA signature parameter.\n @return mirror The address of the created program (`Mirror`)."},"functionSelector":"ee32004f","implemented":true,"kind":"function","modifiers":[{"id":81202,"kind":"modifierInvocation","modifierName":{"id":81201,"name":"whenNotPaused","nameLocations":["36355:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"36355:13:165"},"nodeType":"ModifierInvocation","src":"36355:13:165"}],"name":"createProgramWithAbiInterfaceAndExecutableBalance","nameLocation":"36045:49:165","parameters":{"id":81200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81183,"mutability":"mutable","name":"_codeId","nameLocation":"36112:7:165","nodeType":"VariableDeclaration","scope":81286,"src":"36104:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36104:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81185,"mutability":"mutable","name":"_salt","nameLocation":"36137:5:165","nodeType":"VariableDeclaration","scope":81286,"src":"36129:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36129:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81187,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"36160:20:165","nodeType":"VariableDeclaration","scope":81286,"src":"36152:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81186,"name":"address","nodeType":"ElementaryTypeName","src":"36152:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81189,"mutability":"mutable","name":"_abiInterface","nameLocation":"36198:13:165","nodeType":"VariableDeclaration","scope":81286,"src":"36190:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81188,"name":"address","nodeType":"ElementaryTypeName","src":"36190:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81191,"mutability":"mutable","name":"_initialExecutableBalance","nameLocation":"36229:25:165","nodeType":"VariableDeclaration","scope":81286,"src":"36221:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81190,"name":"uint128","nodeType":"ElementaryTypeName","src":"36221:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81193,"mutability":"mutable","name":"_deadline","nameLocation":"36272:9:165","nodeType":"VariableDeclaration","scope":81286,"src":"36264:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81192,"name":"uint256","nodeType":"ElementaryTypeName","src":"36264:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81195,"mutability":"mutable","name":"_v","nameLocation":"36297:2:165","nodeType":"VariableDeclaration","scope":81286,"src":"36291:8:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":81194,"name":"uint8","nodeType":"ElementaryTypeName","src":"36291:5:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":81197,"mutability":"mutable","name":"_r","nameLocation":"36317:2:165","nodeType":"VariableDeclaration","scope":81286,"src":"36309:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36309:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81199,"mutability":"mutable","name":"_s","nameLocation":"36337:2:165","nodeType":"VariableDeclaration","scope":81286,"src":"36329:10:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36329:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"36094:251:165"},"returnParameters":{"id":81205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81286,"src":"36378:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81203,"name":"address","nodeType":"ElementaryTypeName","src":"36378:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36377:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81453,"nodeType":"FunctionDefinition","src":"37577:2151:165","nodes":[],"body":{"id":81452,"nodeType":"Block","src":"37753:1975:165","nodes":[],"statements":[{"assignments":[81303],"declarations":[{"constant":false,"id":81303,"mutability":"mutable","name":"router","nameLocation":"37779:6:165","nodeType":"VariableDeclaration","scope":81452,"src":"37763:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81302,"nodeType":"UserDefinedTypeName","pathNode":{"id":81301,"name":"Storage","nameLocations":["37763:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"37763:7:165"},"referencedDeclaration":74493,"src":"37763:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81306,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81304,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"37788:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37788:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"37763:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81308,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"37816:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37823:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"37816:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"37836:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83154,"src":"37816:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37852:1:165","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":81312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"37844:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37844:7:165","typeDescriptions":{}}},"id":81314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37844:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"37816:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81316,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74575,"src":"37856:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37856:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81307,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"37808:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37808:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81319,"nodeType":"ExpressionStatement","src":"37808:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81320,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"38054:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38061:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":74464,"src":"38054:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38073:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"38054:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81347,"nodeType":"IfStatement","src":"38050:295:165","trueBody":{"id":81346,"nodeType":"Block","src":"38076:269:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":81327,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38122:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38129:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":83069,"src":"38122:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81329,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38140:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38147:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"38140:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":81325,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"38098:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38103:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":83597,"src":"38098:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":81331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38098:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81332,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"38156:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38156:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81324,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38090:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38090:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81335,"nodeType":"ExpressionStatement","src":"38090:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81337,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38267:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38273:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"38267:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":81339,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38285:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38292:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83072,"src":"38285:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38267:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81342,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74615,"src":"38308:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38308:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81336,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38259:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38259:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81345,"nodeType":"ExpressionStatement","src":"38259:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81349,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"38458:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38465:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74472,"src":"38458:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38486:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83142,"src":"38458:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":81352,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38494:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38501:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"38494:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"38458:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81355,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74617,"src":"38529:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38529:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81348,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38437:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38437:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81358,"nodeType":"ExpressionStatement","src":"38437:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81360,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"38593:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38600:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74472,"src":"38593:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38621:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"38593:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":81363,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38634:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38641:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83072,"src":"38634:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"38593:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81366,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74619,"src":"38657:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38657:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81359,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"38585:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38585:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81369,"nodeType":"ExpressionStatement","src":"38585:97:165"},{"assignments":[81371],"declarations":[{"constant":false,"id":81371,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"38701:20:165","nodeType":"VariableDeclaration","scope":81452,"src":"38693:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38693:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81376,"initialValue":{"arguments":[{"id":81373,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"38737:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81374,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38745:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81372,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81635,"src":"38724:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74493_storage_ptr_$_t_struct$_BatchCommitment_$83099_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38724:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38693:59:165"},{"assignments":[81378],"declarations":[{"constant":false,"id":81378,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"38770:20:165","nodeType":"VariableDeclaration","scope":81452,"src":"38762:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38762:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81383,"initialValue":{"arguments":[{"id":81380,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"38806:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81381,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38814:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81379,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81777,"src":"38793:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74493_storage_ptr_$_t_struct$_BatchCommitment_$83099_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38793:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38762:59:165"},{"assignments":[81385],"declarations":[{"constant":false,"id":81385,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"38839:22:165","nodeType":"VariableDeclaration","scope":81452,"src":"38831:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81384,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38831:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81390,"initialValue":{"arguments":[{"id":81387,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"38879:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81388,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38887:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81386,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81934,"src":"38864:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74493_storage_ptr_$_t_struct$_BatchCommitment_$83099_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38864:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38831:63:165"},{"assignments":[81392],"declarations":[{"constant":false,"id":81392,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"38912:25:165","nodeType":"VariableDeclaration","scope":81452,"src":"38904:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38904:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81397,"initialValue":{"arguments":[{"id":81394,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"38958:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81395,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"38966:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":81393,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82082,"src":"38940:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74493_storage_ptr_$_t_struct$_BatchCommitment_$83099_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":81396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38940:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38904:69:165"},{"assignments":[81399],"declarations":[{"constant":false,"id":81399,"mutability":"mutable","name":"_batchHash","nameLocation":"38992:10:165","nodeType":"VariableDeclaration","scope":81452,"src":"38984:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38984:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81415,"initialValue":{"arguments":[{"expression":{"id":81402,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"39043:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39050:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":83069,"src":"39043:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81404,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"39073:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39080:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83072,"src":"39073:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":81406,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"39108:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39115:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":83075,"src":"39108:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81408,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"39155:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39162:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":83078,"src":"39155:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":81410,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81371,"src":"39182:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81411,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"39216:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81412,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81385,"src":"39250:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81413,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81392,"src":"39286:25:165","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_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81400,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"39005:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39010:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83441,"src":"39005:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39005:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"38984:337:165"},{"expression":{"id":81422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81416,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"39332:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39339:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74472,"src":"39332:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39360:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83142,"src":"39332:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81421,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81399,"src":"39367:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39332:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81423,"nodeType":"ExpressionStatement","src":"39332:45:165"},{"expression":{"id":81431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":81424,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"39387:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39394:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":74472,"src":"39387:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$83145_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":81428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"39415:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83144,"src":"39387:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81429,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"39427:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39434:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83072,"src":"39427:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"39387:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":81432,"nodeType":"ExpressionStatement","src":"39387:61:165"},{"eventCall":{"arguments":[{"id":81434,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81399,"src":"39479:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81433,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74498,"src":"39464:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39464:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81436,"nodeType":"EmitStatement","src":"39459:31:165"},{"expression":{"arguments":[{"arguments":[{"id":81440,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"39565:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":81441,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79507,"src":"39573:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81442,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81399,"src":"39592:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81443,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81293,"src":"39604:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"}},{"id":81444,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81296,"src":"39620:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":81445,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"39633:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39640:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83072,"src":"39633:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81438,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"39522:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39527:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":83883,"src":"39522:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74493_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$83315_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":81447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39522:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81448,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74647,"src":"39682:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39682:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81437,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39501:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39501:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81451,"nodeType":"ExpressionStatement","src":"39501:220:165"}]},"baseFunctions":[75007],"documentation":{"id":81287,"nodeType":"StructuredDocumentation","src":"37122:450:165","text":" @dev Commits new batch of changes to `Router` state.\n `CodeGotValidated` event is emitted for each code in commitment.\n `MBCommitted` event is emitted on success. Triggers multiple events for each corresponding `Mirror` instances.\n @param _batch The batch commitment data.\n @param _signatureType The type of signature to validate.\n @param _signatures The signatures for the batch commitment."},"functionSelector":"1622441d","implemented":true,"kind":"function","modifiers":[{"id":81299,"kind":"modifierInvocation","modifierName":{"id":81298,"name":"nonReentrant","nameLocations":["37740:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43886,"src":"37740:12:165"},"nodeType":"ModifierInvocation","src":"37740:12:165"}],"name":"commitBatch","nameLocation":"37586:11:165","parameters":{"id":81297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81290,"mutability":"mutable","name":"_batch","nameLocation":"37637:6:165","nodeType":"VariableDeclaration","scope":81453,"src":"37607:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81289,"nodeType":"UserDefinedTypeName","pathNode":{"id":81288,"name":"Gear.BatchCommitment","nameLocations":["37607:4:165","37612:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83099,"src":"37607:20:165"},"referencedDeclaration":83099,"src":"37607:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":81293,"mutability":"mutable","name":"_signatureType","nameLocation":"37672:14:165","nodeType":"VariableDeclaration","scope":81453,"src":"37653:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"},"typeName":{"id":81292,"nodeType":"UserDefinedTypeName","pathNode":{"id":81291,"name":"Gear.SignatureType","nameLocations":["37653:4:165","37658:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":83315,"src":"37653:18:165"},"referencedDeclaration":83315,"src":"37653:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$83315","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":81296,"mutability":"mutable","name":"_signatures","nameLocation":"37713:11:165","nodeType":"VariableDeclaration","scope":81453,"src":"37696:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":81294,"name":"bytes","nodeType":"ElementaryTypeName","src":"37696:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":81295,"nodeType":"ArrayTypeName","src":"37696:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"37597:133:165"},"returnParameters":{"id":81300,"nodeType":"ParameterList","parameters":[],"src":"37753:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81556,"nodeType":"FunctionDefinition","src":"39772:934:165","nodes":[],"body":{"id":81555,"nodeType":"Block","src":"39886:820:165","nodes":[],"statements":[{"assignments":[81469],"declarations":[{"constant":false,"id":81469,"mutability":"mutable","name":"router","nameLocation":"39912:6:165","nodeType":"VariableDeclaration","scope":81555,"src":"39896:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81468,"nodeType":"UserDefinedTypeName","pathNode":{"id":81467,"name":"Storage","nameLocations":["39896:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"39896:7:165"},"referencedDeclaration":74493,"src":"39896:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":81472,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81470,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"39921:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":81471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39921:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"39896:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81474,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81469,"src":"39948:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39955:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"39948:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39968:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83154,"src":"39948:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39984:1:165","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":81478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"39976:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39976:7:165","typeDescriptions":{}}},"id":81480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39976:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"39948:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81482,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74575,"src":"39988:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39988:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81473,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"39940:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39940:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81485,"nodeType":"ExpressionStatement","src":"39940:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"},"id":81495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81487,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81469,"src":"40041:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40048:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"40041:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40061:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"40041:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81491,"indexExpression":{"id":81490,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81455,"src":"40067:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"40041:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81492,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"40079:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40084:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"40079:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83139_$","typeString":"type(enum Gear.CodeState)"}},"id":81494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40094:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83138,"src":"40079:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"src":"40041:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81496,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"40105:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40105:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40033:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40033:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81499,"nodeType":"ExpressionStatement","src":"40033:91:165"},{"assignments":[81501],"declarations":[{"constant":false,"id":81501,"mutability":"mutable","name":"salt","nameLocation":"40293:4:165","nodeType":"VariableDeclaration","scope":81555,"src":"40285:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40285:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81507,"initialValue":{"arguments":[{"id":81504,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81455,"src":"40335:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81505,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81457,"src":"40344:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81502,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"40300:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40307:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41482,"src":"40300:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":81506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40300:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"40285:65:165"},{"assignments":[81509],"declarations":[{"constant":false,"id":81509,"mutability":"mutable","name":"actorId","nameLocation":"40368:7:165","nodeType":"VariableDeclaration","scope":81555,"src":"40360:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81508,"name":"address","nodeType":"ElementaryTypeName","src":"40360:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81528,"initialValue":{"condition":{"id":81510,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"40378:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":81523,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"40501:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":81522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40493:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81521,"name":"address","nodeType":"ElementaryTypeName","src":"40493:7:165","typeDescriptions":{}}},"id":81524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40493:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81525,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81501,"src":"40508:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81519,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82828,"src":"40467:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$82828_$","typeString":"type(library Clones)"}},"id":81520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40474:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82597,"src":"40467:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40467:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"40378:135:165","trueExpression":{"arguments":[{"arguments":[{"id":81515,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"40440:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$82432","typeString":"contract Router"}],"id":81514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"40432:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81513,"name":"address","nodeType":"ElementaryTypeName","src":"40432:7:165","typeDescriptions":{}}},"id":81516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40432:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81517,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81501,"src":"40447:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81511,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82912,"src":"40401:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$82912_$","typeString":"type(library ClonesSmall)"}},"id":81512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40413:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":82850,"src":"40401:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":81518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40401:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"40360:153:165"},{"expression":{"id":81537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81529,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81469,"src":"40524:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40531:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"40524:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40544:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83192,"src":"40524:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":81535,"indexExpression":{"id":81532,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81509,"src":"40553:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"40524:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81536,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81455,"src":"40564:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"40524:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81538,"nodeType":"ExpressionStatement","src":"40524:47:165"},{"expression":{"id":81544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"40581:35:165","subExpression":{"expression":{"expression":{"id":81539,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81469,"src":"40581:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"40588:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"40581:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"40601:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":83195,"src":"40581:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81545,"nodeType":"ExpressionStatement","src":"40581:35:165"},{"eventCall":{"arguments":[{"id":81547,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81509,"src":"40647:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81548,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81455,"src":"40656:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81546,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74544,"src":"40632:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":81549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40632:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81550,"nodeType":"EmitStatement","src":"40627:37:165"},{"expression":{"components":[{"id":81551,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81509,"src":"40683:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81552,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81469,"src":"40692:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"id":81553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"40682:17:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"tuple(address,struct IRouter.Storage storage pointer)"}},"functionReturnParameters":81466,"id":81554,"nodeType":"Return","src":"40675:24:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"39781:14:165","parameters":{"id":81460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81455,"mutability":"mutable","name":"_codeId","nameLocation":"39804:7:165","nodeType":"VariableDeclaration","scope":81556,"src":"39796:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39796:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81457,"mutability":"mutable","name":"_salt","nameLocation":"39821:5:165","nodeType":"VariableDeclaration","scope":81556,"src":"39813:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39813:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81459,"mutability":"mutable","name":"_isSmall","nameLocation":"39833:8:165","nodeType":"VariableDeclaration","scope":81556,"src":"39828:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81458,"name":"bool","nodeType":"ElementaryTypeName","src":"39828:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39795:47:165"},"returnParameters":{"id":81466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81556,"src":"39860:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81461,"name":"address","nodeType":"ElementaryTypeName","src":"39860:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81556,"src":"39869:15:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81464,"nodeType":"UserDefinedTypeName","pathNode":{"id":81463,"name":"Storage","nameLocations":["39869:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"39869:7:165"},"referencedDeclaration":74493,"src":"39869:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"39859:26:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81635,"nodeType":"FunctionDefinition","src":"40712:846:165","nodes":[],"body":{"id":81634,"nodeType":"Block","src":"40822:736:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81568,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"40840:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40847:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83083,"src":"40840:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83051_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40863:6:165","memberName":"length","nodeType":"MemberAccess","src":"40840:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40873:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"40840:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81573,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74621,"src":"40876:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40876:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81567,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"40832:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40832:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81576,"nodeType":"ExpressionStatement","src":"40832:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81577,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"40917:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40924:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83083,"src":"40917:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83051_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"40940:6:165","memberName":"length","nodeType":"MemberAccess","src":"40917:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40950:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"40917:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81587,"nodeType":"IfStatement","src":"40913:177:165","trueBody":{"id":81586,"nodeType":"Block","src":"40953:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41076:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81582,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"41066:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41066:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81566,"id":81585,"nodeType":"Return","src":"41059:20:165"}]}},{"assignments":[81592],"declarations":[{"constant":false,"id":81592,"mutability":"mutable","name":"_commitment","nameLocation":"41130:11:165","nodeType":"VariableDeclaration","scope":81634,"src":"41100:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":81591,"nodeType":"UserDefinedTypeName","pathNode":{"id":81590,"name":"Gear.ChainCommitment","nameLocations":["41100:4:165","41105:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83051,"src":"41100:20:165"},"referencedDeclaration":83051,"src":"41100:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":81597,"initialValue":{"baseExpression":{"expression":{"id":81593,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81562,"src":"41144:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41151:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":83083,"src":"41144:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$83051_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":81596,"indexExpression":{"hexValue":"30","id":81595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41167:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"41144:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"41100:69:165"},{"assignments":[81599],"declarations":[{"constant":false,"id":81599,"mutability":"mutable","name":"_transitionsHash","nameLocation":"41188:16:165","nodeType":"VariableDeclaration","scope":81634,"src":"41180:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81598,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41180:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81605,"initialValue":{"arguments":[{"id":81601,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"41226:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81602,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81592,"src":"41234:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41246:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":83044,"src":"41234:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83249_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83249_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":81600,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82202,"src":"41207:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$74493_storage_ptr_$_t_array$_t_struct$_StateTransition_$83249_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":81604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41207:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"41180:78:165"},{"eventCall":{"arguments":[{"expression":{"id":81607,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81592,"src":"41286:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41298:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":83047,"src":"41286:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81606,"name":"MBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74503,"src":"41274:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41274:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81610,"nodeType":"EmitStatement","src":"41269:34:165"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81611,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81592,"src":"41317:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41329:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":83050,"src":"41317:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41361:1:165","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":81614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"41353:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41353:7:165","typeDescriptions":{}}},"id":81616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41353:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"41317:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81624,"nodeType":"IfStatement","src":"41313:127:165","trueBody":{"id":81623,"nodeType":"Block","src":"41365:75:165","statements":[{"eventCall":{"arguments":[{"expression":{"id":81619,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81592,"src":"41396:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41408:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":83050,"src":"41396:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81618,"name":"EBCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74508,"src":"41384:11:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41384:45:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81622,"nodeType":"EmitStatement","src":"41379:50:165"}]}},{"expression":{"arguments":[{"id":81627,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81599,"src":"41482:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81628,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81592,"src":"41500:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41512:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":83047,"src":"41500:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81630,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81592,"src":"41518:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$83051_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":81631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41530:20:165","memberName":"lastAdvancedEthBlock","nodeType":"MemberAccess","referencedDeclaration":83050,"src":"41518:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81625,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"41457:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41462:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83337,"src":"41457:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":81632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41457:94:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81566,"id":81633,"nodeType":"Return","src":"41450:101:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"40721:12:165","parameters":{"id":81563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81559,"mutability":"mutable","name":"router","nameLocation":"40750:6:165","nodeType":"VariableDeclaration","scope":81635,"src":"40734:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81558,"nodeType":"UserDefinedTypeName","pathNode":{"id":81557,"name":"Storage","nameLocations":["40734:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"40734:7:165"},"referencedDeclaration":74493,"src":"40734:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81562,"mutability":"mutable","name":"_batch","nameLocation":"40788:6:165","nodeType":"VariableDeclaration","scope":81635,"src":"40758:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81561,"nodeType":"UserDefinedTypeName","pathNode":{"id":81560,"name":"Gear.BatchCommitment","nameLocations":["40758:4:165","40763:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83099,"src":"40758:20:165"},"referencedDeclaration":83099,"src":"40758:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"40733:62:165"},"returnParameters":{"id":81566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81635,"src":"40813:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40813:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"40812:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81777,"nodeType":"FunctionDefinition","src":"41564:1402:165","nodes":[],"body":{"id":81776,"nodeType":"Block","src":"41674:1292:165","nodes":[],"statements":[{"assignments":[81647],"declarations":[{"constant":false,"id":81647,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"41692:18:165","nodeType":"VariableDeclaration","scope":81776,"src":"41684:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81646,"name":"uint256","nodeType":"ElementaryTypeName","src":"41684:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81651,"initialValue":{"expression":{"expression":{"id":81648,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81641,"src":"41713:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41720:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83088,"src":"41713:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83038_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41736:6:165","memberName":"length","nodeType":"MemberAccess","src":"41713:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"41684:58:165"},{"assignments":[81653],"declarations":[{"constant":false,"id":81653,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"41760:23:165","nodeType":"VariableDeclaration","scope":81776,"src":"41752:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81652,"name":"uint256","nodeType":"ElementaryTypeName","src":"41752:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81657,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81654,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81647,"src":"41786:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41807:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"41786:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"41752:57:165"},{"assignments":[81659],"declarations":[{"constant":false,"id":81659,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"41827:18:165","nodeType":"VariableDeclaration","scope":81776,"src":"41819:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81658,"name":"uint256","nodeType":"ElementaryTypeName","src":"41819:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81664,"initialValue":{"arguments":[{"id":81662,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81653,"src":"41864:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81660,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"41848:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"41855:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"41848:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41848:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"41819:69:165"},{"assignments":[81666],"declarations":[{"constant":false,"id":81666,"mutability":"mutable","name":"offset","nameLocation":"41906:6:165","nodeType":"VariableDeclaration","scope":81776,"src":"41898:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81665,"name":"uint256","nodeType":"ElementaryTypeName","src":"41898:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81668,"initialValue":{"hexValue":"30","id":81667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41915:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"41898:18:165"},{"body":{"id":81767,"nodeType":"Block","src":"41976:884:165","statements":[{"assignments":[81683],"declarations":[{"constant":false,"id":81683,"mutability":"mutable","name":"_commitment","nameLocation":"42019:11:165","nodeType":"VariableDeclaration","scope":81767,"src":"41990:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":81682,"nodeType":"UserDefinedTypeName","pathNode":{"id":81681,"name":"Gear.CodeCommitment","nameLocations":["41990:4:165","41995:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":83038,"src":"41990:19:165"},"referencedDeclaration":83038,"src":"41990:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":81688,"initialValue":{"baseExpression":{"expression":{"id":81684,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81641,"src":"42033:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42040:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":83088,"src":"42033:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$83038_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":81687,"indexExpression":{"id":81686,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81670,"src":"42056:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42033:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"41990:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"},"id":81699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81690,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81638,"src":"42098:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42105:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"42098:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42118:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"42098:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81695,"indexExpression":{"expression":{"id":81693,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"42124:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42136:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83034,"src":"42124:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"42098:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":81696,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"42143:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42148:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"42143:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83139_$","typeString":"type(enum Gear.CodeState)"}},"id":81698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42158:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":83136,"src":"42143:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"src":"42098:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81700,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74625,"src":"42195:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42195:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81689,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"42073:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42073:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81703,"nodeType":"ExpressionStatement","src":"42073:164:165"},{"condition":{"expression":{"id":81704,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"42256:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42268:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83037,"src":"42256:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81735,"nodeType":"Block","src":"42441:81:165","statements":[{"expression":{"id":81733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"42459:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":81727,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81638,"src":"42466:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81728,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42473:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"42466:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42486:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"42466:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81732,"indexExpression":{"expression":{"id":81730,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"42492:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42504:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83034,"src":"42492:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"42466:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81734,"nodeType":"ExpressionStatement","src":"42459:48:165"}]},"id":81736,"nodeType":"IfStatement","src":"42252:270:165","trueBody":{"id":81726,"nodeType":"Block","src":"42275:160:165","statements":[{"expression":{"id":81717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":81706,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81638,"src":"42293:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42300:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"42293:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42313:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":83187,"src":"42293:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$83139_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":81713,"indexExpression":{"expression":{"id":81709,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"42319:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42331:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83034,"src":"42319:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"42293:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":81714,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"42337:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42342:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":83139,"src":"42337:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$83139_$","typeString":"type(enum Gear.CodeState)"}},"id":81716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42352:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":83138,"src":"42337:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"src":"42293:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$83139","typeString":"enum Gear.CodeState"}},"id":81718,"nodeType":"ExpressionStatement","src":"42293:68:165"},{"expression":{"id":81724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"42379:41:165","subExpression":{"expression":{"expression":{"id":81719,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81638,"src":"42379:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"42386:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"42379:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":81723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"42399:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":83198,"src":"42379:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81725,"nodeType":"ExpressionStatement","src":"42379:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":81738,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"42558:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42570:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83034,"src":"42558:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81740,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"42574:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42586:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83037,"src":"42574:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81737,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74520,"src":"42541:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":81742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42541:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81743,"nodeType":"EmitStatement","src":"42536:56:165"},{"assignments":[81745],"declarations":[{"constant":false,"id":81745,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"42615:18:165","nodeType":"VariableDeclaration","scope":81767,"src":"42607:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42607:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81753,"initialValue":{"arguments":[{"expression":{"id":81748,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"42660:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42672:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":83034,"src":"42660:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81750,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"42676:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$83038_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":81751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42688:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":83037,"src":"42676:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":81746,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"42636:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42641:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83354,"src":"42636:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":81752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42636:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"42607:87:165"},{"expression":{"arguments":[{"id":81757,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81659,"src":"42734:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81758,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81666,"src":"42754:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81759,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81745,"src":"42762:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81754,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"42708:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":81756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42715:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"42708:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42708:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81761,"nodeType":"ExpressionStatement","src":"42708:73:165"},{"id":81766,"nodeType":"UncheckedBlock","src":"42795:55:165","statements":[{"expression":{"id":81764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81762,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81666,"src":"42823:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42833:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"42823:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81765,"nodeType":"ExpressionStatement","src":"42823:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81670,"src":"41947:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81674,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81647,"src":"41951:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"41947:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81768,"initializationExpression":{"assignments":[81670],"declarations":[{"constant":false,"id":81670,"mutability":"mutable","name":"i","nameLocation":"41940:1:165","nodeType":"VariableDeclaration","scope":81768,"src":"41932:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81669,"name":"uint256","nodeType":"ElementaryTypeName","src":"41932:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81672,"initialValue":{"hexValue":"30","id":81671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41944:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"41932:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"41971:3:165","subExpression":{"id":81676,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81670,"src":"41971:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81678,"nodeType":"ExpressionStatement","src":"41971:3:165"},"nodeType":"ForStatement","src":"41927:933:165"},{"expression":{"arguments":[{"id":81771,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81659,"src":"42912:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42932:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81773,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81653,"src":"42935:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81769,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"42877:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":81770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"42884:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"42877:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42877:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81645,"id":81775,"nodeType":"Return","src":"42870:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"41573:12:165","parameters":{"id":81642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81638,"mutability":"mutable","name":"router","nameLocation":"41602:6:165","nodeType":"VariableDeclaration","scope":81777,"src":"41586:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81637,"nodeType":"UserDefinedTypeName","pathNode":{"id":81636,"name":"Storage","nameLocations":["41586:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"41586:7:165"},"referencedDeclaration":74493,"src":"41586:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81641,"mutability":"mutable","name":"_batch","nameLocation":"41640:6:165","nodeType":"VariableDeclaration","scope":81777,"src":"41610:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81640,"nodeType":"UserDefinedTypeName","pathNode":{"id":81639,"name":"Gear.BatchCommitment","nameLocations":["41610:4:165","41615:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83099,"src":"41610:20:165"},"referencedDeclaration":83099,"src":"41610:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"41585:62:165"},"returnParameters":{"id":81645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81777,"src":"41665:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41665:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41664:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81934,"nodeType":"FunctionDefinition","src":"43008:1705:165","nodes":[],"body":{"id":81933,"nodeType":"Block","src":"43120:1593:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81789,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81783,"src":"43138:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43145:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"43138:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83109_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43163:6:165","memberName":"length","nodeType":"MemberAccess","src":"43138:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43173:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"43138:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81794,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74627,"src":"43176:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43176:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81788,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43130:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43130:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81797,"nodeType":"ExpressionStatement","src":"43130:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81798,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81783,"src":"43219:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43226:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"43219:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83109_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43244:6:165","memberName":"length","nodeType":"MemberAccess","src":"43219:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43254:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"43219:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81808,"nodeType":"IfStatement","src":"43215:179:165","trueBody":{"id":81807,"nodeType":"Block","src":"43257:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43380:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81803,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"43370:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43370:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81787,"id":81806,"nodeType":"Return","src":"43363:20:165"}]}},{"assignments":[81813],"declarations":[{"constant":false,"id":81813,"mutability":"mutable","name":"_commitment","nameLocation":"43436:11:165","nodeType":"VariableDeclaration","scope":81933,"src":"43404:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":81812,"nodeType":"UserDefinedTypeName","pathNode":{"id":81811,"name":"Gear.RewardsCommitment","nameLocations":["43404:4:165","43409:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":83109,"src":"43404:22:165"},"referencedDeclaration":83109,"src":"43404:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":81818,"initialValue":{"baseExpression":{"expression":{"id":81814,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81783,"src":"43450:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43457:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":83093,"src":"43450:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$83109_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":81817,"indexExpression":{"hexValue":"30","id":81816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43475:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"43450:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"43404:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81820,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"43496:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43508:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"43496:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":81822,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81783,"src":"43520:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43527:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83072,"src":"43520:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"43496:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81825,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74629,"src":"43543:35:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43543:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81819,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43488:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43488:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81828,"nodeType":"ExpressionStatement","src":"43488:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":81835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81830,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"43599:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43611:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"43599:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":81832,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81780,"src":"43624:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43631:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"43624:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43644:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"43624:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"43599:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81836,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"43655:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43655:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81829,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43591:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43591:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81839,"nodeType":"ExpressionStatement","src":"43591:99:165"},{"assignments":[81841],"declarations":[{"constant":false,"id":81841,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"43709:18:165","nodeType":"VariableDeclaration","scope":81933,"src":"43701:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81840,"name":"uint256","nodeType":"ElementaryTypeName","src":"43701:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81848,"initialValue":{"arguments":[{"id":81844,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81780,"src":"43746:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81845,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"43754:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43766:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"43754:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81842,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"43730:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43735:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84091,"src":"43730:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43730:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"43701:75:165"},{"assignments":[81850],"declarations":[{"constant":false,"id":81850,"mutability":"mutable","name":"batchEraIndex","nameLocation":"43794:13:165","nodeType":"VariableDeclaration","scope":81933,"src":"43786:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81849,"name":"uint256","nodeType":"ElementaryTypeName","src":"43786:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81857,"initialValue":{"arguments":[{"id":81853,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81780,"src":"43826:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":81854,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81783,"src":"43834:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43841:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":83072,"src":"43834:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81851,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"43810:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"43815:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":84091,"src":"43810:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":81856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43810:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"43786:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81859,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81841,"src":"43875:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81860,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81850,"src":"43896:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"43875:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81862,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74633,"src":"43911:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43911:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81858,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"43867:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43867:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81865,"nodeType":"ExpressionStatement","src":"43867:78:165"},{"assignments":[81867],"declarations":[{"constant":false,"id":81867,"mutability":"mutable","name":"_middleware","nameLocation":"43964:11:165","nodeType":"VariableDeclaration","scope":81933,"src":"43956:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81866,"name":"address","nodeType":"ElementaryTypeName","src":"43956:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81871,"initialValue":{"expression":{"expression":{"id":81868,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81780,"src":"43978:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43985:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"43978:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81870,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"43999:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":83029,"src":"43978:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"43956:53:165"},{"assignments":[81873],"declarations":[{"constant":false,"id":81873,"mutability":"mutable","name":"success","nameLocation":"44024:7:165","nodeType":"VariableDeclaration","scope":81933,"src":"44019:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81872,"name":"bool","nodeType":"ElementaryTypeName","src":"44019:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81889,"initialValue":{"arguments":[{"id":81880,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81867,"src":"44102:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81881,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"44115:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44127:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83103,"src":"44115:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83115_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44137:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83112,"src":"44115:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":81884,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"44146:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44158:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83106,"src":"44146:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":81886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44166:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":83122,"src":"44146:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"44115:62:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":81875,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81780,"src":"44047:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81876,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44054:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"44047:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44068:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"44047:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81874,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"44034:12:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$75024_$","typeString":"type(contract IWrappedVara)"}},"id":81878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44034:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$75024","typeString":"contract IWrappedVara"}},"id":81879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44094:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46823,"src":"44034:67:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":81888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44034:144:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"44019:159:165"},{"expression":{"arguments":[{"id":81891,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81873,"src":"44196:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81892,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74635,"src":"44205:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44205:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81890,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44188:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44188:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81895,"nodeType":"ExpressionStatement","src":"44188:38:165"},{"assignments":[81897],"declarations":[{"constant":false,"id":81897,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"44245:20:165","nodeType":"VariableDeclaration","scope":81933,"src":"44237:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81896,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44237:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81912,"initialValue":{"arguments":[{"expression":{"expression":{"id":81902,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81780,"src":"44349:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44356:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":74476,"src":"44349:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$83030_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":81904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"44370:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":83026,"src":"44349:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":81905,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"44383:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44395:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83103,"src":"44383:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83115_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44405:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":83112,"src":"44383:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":81908,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"44413:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44425:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":83103,"src":"44413:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$83115_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":81910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44435:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":83114,"src":"44413:26:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":81899,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81867,"src":"44280:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81898,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"44268:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44268:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44306:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":74119,"src":"44268:63:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":81911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44268:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"44237:216:165"},{"assignments":[81914],"declarations":[{"constant":false,"id":81914,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"44472:18:165","nodeType":"VariableDeclaration","scope":81933,"src":"44464:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44464:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81924,"initialValue":{"arguments":[{"expression":{"id":81919,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"44554:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44566:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":83106,"src":"44554:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":81921,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"44575:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44587:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"44575:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$83125_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":81916,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81867,"src":"44517:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81915,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74131,"src":"44505:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$74131_$","typeString":"type(contract IMiddleware)"}},"id":81917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44505:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$74131","typeString":"contract IMiddleware"}},"id":81918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44530:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":74130,"src":"44505:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$83125_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":81923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44505:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"44464:133:165"},{"expression":{"arguments":[{"id":81927,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81897,"src":"44642:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81928,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81914,"src":"44664:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81929,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81813,"src":"44684:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$83109_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":81930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44696:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83108,"src":"44684:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":81925,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"44615:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":81926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44620:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83376,"src":"44615:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":81931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44615:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81787,"id":81932,"nodeType":"Return","src":"44608:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"43017:14:165","parameters":{"id":81784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81780,"mutability":"mutable","name":"router","nameLocation":"43048:6:165","nodeType":"VariableDeclaration","scope":81934,"src":"43032:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81779,"nodeType":"UserDefinedTypeName","pathNode":{"id":81778,"name":"Storage","nameLocations":["43032:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"43032:7:165"},"referencedDeclaration":74493,"src":"43032:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81783,"mutability":"mutable","name":"_batch","nameLocation":"43086:6:165","nodeType":"VariableDeclaration","scope":81934,"src":"43056:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81782,"nodeType":"UserDefinedTypeName","pathNode":{"id":81781,"name":"Gear.BatchCommitment","nameLocations":["43056:4:165","43061:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83099,"src":"43056:20:165"},"referencedDeclaration":83099,"src":"43056:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"43031:62:165"},"returnParameters":{"id":81787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81934,"src":"43111:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43111:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"43110:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82082,"nodeType":"FunctionDefinition","src":"44780:1705:165","nodes":[],"body":{"id":82081,"nodeType":"Block","src":"44895:1590:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81947,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81941,"src":"44913:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44920:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83098,"src":"44913:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83065_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"44941:6:165","memberName":"length","nodeType":"MemberAccess","src":"44913:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":81950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44951:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"44913:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81952,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74637,"src":"44954:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44954:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81946,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"44905:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44905:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81955,"nodeType":"ExpressionStatement","src":"44905:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81956,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81941,"src":"45000:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45007:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83098,"src":"45000:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83065_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45028:6:165","memberName":"length","nodeType":"MemberAccess","src":"45000:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45038:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45000:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81966,"nodeType":"IfStatement","src":"44996:182:165","trueBody":{"id":81965,"nodeType":"Block","src":"45041:137:165","statements":[{"documentation":" forge-lint: disable-next-item(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":81962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45164:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":81961,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"45154:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":81963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45154:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81945,"id":81964,"nodeType":"Return","src":"45147:20:165"}]}},{"assignments":[81971],"declarations":[{"constant":false,"id":81971,"mutability":"mutable","name":"_commitment","nameLocation":"45223:11:165","nodeType":"VariableDeclaration","scope":82081,"src":"45188:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":81970,"nodeType":"UserDefinedTypeName","pathNode":{"id":81969,"name":"Gear.ValidatorsCommitment","nameLocations":["45188:4:165","45193:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":83065,"src":"45188:25:165"},"referencedDeclaration":83065,"src":"45188:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":81976,"initialValue":{"baseExpression":{"expression":{"id":81972,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81941,"src":"45237:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":81973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45244:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":83098,"src":"45237:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$83065_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":81975,"indexExpression":{"hexValue":"30","id":81974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45265:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"45237:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"45188:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81978,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"45286:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":81979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45298:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83062,"src":"45286:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":81980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45309:6:165","memberName":"length","nodeType":"MemberAccess","src":"45286:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45318:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"45286:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81983,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74639,"src":"45321:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45321:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81977,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45278:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45278:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81986,"nodeType":"ExpressionStatement","src":"45278:65:165"},{"assignments":[81988],"declarations":[{"constant":false,"id":81988,"mutability":"mutable","name":"currentEraIndex","nameLocation":"45416:15:165","nodeType":"VariableDeclaration","scope":82081,"src":"45408:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81987,"name":"uint256","nodeType":"ElementaryTypeName","src":"45408:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82000,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81989,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45435:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":81990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45441:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"45435:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":81991,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81938,"src":"45453:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45460:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"45453:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":81993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45473:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"45453:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"45435:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81995,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"45434:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":81996,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81938,"src":"45486:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":81997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45493:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"45486:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"id":81998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45503:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83252,"src":"45486:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45434:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45408:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82002,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"45525:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45537:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83064,"src":"45525:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82004,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81988,"src":"45549:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":82005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45567:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"45549:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45525:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82008,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74641,"src":"45570:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45570:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82001,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45517:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45517:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82011,"nodeType":"ExpressionStatement","src":"45517:76:165"},{"assignments":[82013],"declarations":[{"constant":false,"id":82013,"mutability":"mutable","name":"nextEraStart","nameLocation":"45612:12:165","nodeType":"VariableDeclaration","scope":82081,"src":"45604:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82012,"name":"uint256","nodeType":"ElementaryTypeName","src":"45604:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82024,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82014,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81938,"src":"45627:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45634:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"45627:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82016,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45647:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":83158,"src":"45627:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82017,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81938,"src":"45659:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45666:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"45659:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45676:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":83252,"src":"45659:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":82020,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"45682:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45694:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83064,"src":"45682:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45659:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45627:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"45604:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82026,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45720:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45726:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"45720:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82028,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82013,"src":"45739:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":82029,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81938,"src":"45754:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45761:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":74488,"src":"45754:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$83257_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45771:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":83254,"src":"45754:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45739:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45720:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82034,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74643,"src":"45781:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45781:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45712:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45712:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82037,"nodeType":"ExpressionStatement","src":"45712:90:165"},{"assignments":[82042],"declarations":[{"constant":false,"id":82042,"mutability":"mutable","name":"_validators","nameLocation":"45884:11:165","nodeType":"VariableDeclaration","scope":82081,"src":"45860:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82041,"nodeType":"UserDefinedTypeName","pathNode":{"id":82040,"name":"Gear.Validators","nameLocations":["45860:4:165","45865:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"45860:15:165"},"referencedDeclaration":83007,"src":"45860:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":82047,"initialValue":{"arguments":[{"id":82045,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81938,"src":"45925:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82043,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"45898:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":82044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45903:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":83927,"src":"45898:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$74493_storage_ptr_$returns$_t_struct$_Validators_$83007_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45898:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"45860:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82049,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82042,"src":"45950:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"45962:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83006,"src":"45950:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82051,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"45981:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"45987:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"45981:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"45950:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82054,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74645,"src":"45998:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45998:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"45942:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45942:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82057,"nodeType":"ExpressionStatement","src":"45942:85:165"},{"expression":{"arguments":[{"id":82059,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82042,"src":"46120:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":82060,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"46145:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46157:22:165","memberName":"hasAggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83054,"src":"46145:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":82062,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"46193:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46205:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":83057,"src":"46193:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":82064,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"46238:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46250:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":83059,"src":"46238:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":82066,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"46297:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46309:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":83062,"src":"46297:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":82068,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82013,"src":"46333:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82058,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82319,"src":"46090:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$83007_storage_ptr_$_t_bool_$_t_struct$_AggregatedPublicKey_$82986_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,bool,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":82069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46090:265:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82070,"nodeType":"ExpressionStatement","src":"46090:265:165"},{"eventCall":{"arguments":[{"expression":{"id":82072,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"46397:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":82073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46409:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":83064,"src":"46397:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82071,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74530,"src":"46371:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":82074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46371:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82075,"nodeType":"EmitStatement","src":"46366:52:165"},{"expression":{"arguments":[{"id":82078,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81971,"src":"46466:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$83065_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":82076,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84181,"src":"46436:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$84181_$","typeString":"type(library Gear)"}},"id":82077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46441:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":83404,"src":"46436:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$83065_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":82079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46436:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81945,"id":82080,"nodeType":"Return","src":"46429:49:165"}]},"documentation":{"id":81935,"nodeType":"StructuredDocumentation","src":"44719:56:165","text":" @dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"44789:17:165","parameters":{"id":81942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81938,"mutability":"mutable","name":"router","nameLocation":"44823:6:165","nodeType":"VariableDeclaration","scope":82082,"src":"44807:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":81937,"nodeType":"UserDefinedTypeName","pathNode":{"id":81936,"name":"Storage","nameLocations":["44807:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"44807:7:165"},"referencedDeclaration":74493,"src":"44807:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":81941,"mutability":"mutable","name":"_batch","nameLocation":"44861:6:165","nodeType":"VariableDeclaration","scope":82082,"src":"44831:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":81940,"nodeType":"UserDefinedTypeName","pathNode":{"id":81939,"name":"Gear.BatchCommitment","nameLocations":["44831:4:165","44836:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83099,"src":"44831:20:165"},"referencedDeclaration":83099,"src":"44831:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$83099_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"44806:62:165"},"returnParameters":{"id":81945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82082,"src":"44886:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81943,"name":"bytes32","nodeType":"ElementaryTypeName","src":"44886:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"44885:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82202,"nodeType":"FunctionDefinition","src":"46491:1168:165","nodes":[],"body":{"id":82201,"nodeType":"Block","src":"46635:1024:165","nodes":[],"statements":[{"assignments":[82095],"declarations":[{"constant":false,"id":82095,"mutability":"mutable","name":"transitionsLen","nameLocation":"46653:14:165","nodeType":"VariableDeclaration","scope":82201,"src":"46645:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82094,"name":"uint256","nodeType":"ElementaryTypeName","src":"46645:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82098,"initialValue":{"expression":{"id":82096,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82089,"src":"46670:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83249_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46683:6:165","memberName":"length","nodeType":"MemberAccess","src":"46670:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46645:44:165"},{"assignments":[82100],"declarations":[{"constant":false,"id":82100,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"46707:19:165","nodeType":"VariableDeclaration","scope":82201,"src":"46699:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82099,"name":"uint256","nodeType":"ElementaryTypeName","src":"46699:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82104,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82101,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82095,"src":"46729:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":82102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46746:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"46729:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46699:49:165"},{"assignments":[82106],"declarations":[{"constant":false,"id":82106,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"46766:23:165","nodeType":"VariableDeclaration","scope":82201,"src":"46758:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82105,"name":"uint256","nodeType":"ElementaryTypeName","src":"46758:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82111,"initialValue":{"arguments":[{"id":82109,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82100,"src":"46808:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82107,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"46792:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"46799:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":41162,"src":"46792:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":82110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46792:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"46758:70:165"},{"assignments":[82113],"declarations":[{"constant":false,"id":82113,"mutability":"mutable","name":"offset","nameLocation":"46846:6:165","nodeType":"VariableDeclaration","scope":82201,"src":"46838:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82112,"name":"uint256","nodeType":"ElementaryTypeName","src":"46838:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82115,"initialValue":{"hexValue":"30","id":82114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46855:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"46838:18:165"},{"body":{"id":82192,"nodeType":"Block","src":"46912:640:165","statements":[{"assignments":[82130],"declarations":[{"constant":false,"id":82130,"mutability":"mutable","name":"transition","nameLocation":"46956:10:165","nodeType":"VariableDeclaration","scope":82192,"src":"46926:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":82129,"nodeType":"UserDefinedTypeName","pathNode":{"id":82128,"name":"Gear.StateTransition","nameLocations":["46926:4:165","46931:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83249,"src":"46926:20:165"},"referencedDeclaration":83249,"src":"46926:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":82134,"initialValue":{"baseExpression":{"id":82131,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82089,"src":"46969:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83249_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":82133,"indexExpression":{"id":82132,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82117,"src":"46982:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"46969:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"46926:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82136,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82085,"src":"47007:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47014:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"47007:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"47027:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83192,"src":"47007:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82141,"indexExpression":{"expression":{"id":82139,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82130,"src":"47036:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47047:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83223,"src":"47036:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"47007:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47059:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"47007:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82144,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74623,"src":"47062:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47062:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82135,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"46999:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46999:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82147,"nodeType":"ExpressionStatement","src":"46999:80:165"},{"assignments":[82149],"declarations":[{"constant":false,"id":82149,"mutability":"mutable","name":"value","nameLocation":"47102:5:165","nodeType":"VariableDeclaration","scope":82192,"src":"47094:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82148,"name":"uint128","nodeType":"ElementaryTypeName","src":"47094:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82151,"initialValue":{"hexValue":"30","id":82150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47110:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"47094:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82152,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82130,"src":"47130:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47141:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83235,"src":"47130:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47159:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"47130:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":82158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"47164:38:165","subExpression":{"expression":{"id":82156,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82130,"src":"47165:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47176:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":83238,"src":"47165:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"47130:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82166,"nodeType":"IfStatement","src":"47126:144:165","trueBody":{"id":82165,"nodeType":"Block","src":"47204:66:165","statements":[{"expression":{"id":82163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82160,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82149,"src":"47222:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82161,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82130,"src":"47230:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47241:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":83235,"src":"47230:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"47222:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82164,"nodeType":"ExpressionStatement","src":"47222:33:165"}]}},{"assignments":[82168],"declarations":[{"constant":false,"id":82168,"mutability":"mutable","name":"transitionHash","nameLocation":"47292:14:165","nodeType":"VariableDeclaration","scope":82192,"src":"47284:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47284:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82178,"initialValue":{"arguments":[{"id":82176,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82130,"src":"47374:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":82170,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82130,"src":"47317:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":82171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47328:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":83223,"src":"47317:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82169,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74395,"src":"47309:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$74395_$","typeString":"type(contract IMirror)"}},"id":82172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47309:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$74395","typeString":"contract IMirror"}},"id":82173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47337:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":74394,"src":"47309:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83249_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":82174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82149,"src":"47367:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"47309:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$83249_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":82177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47309:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"47284:101:165"},{"expression":{"arguments":[{"id":82182,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82106,"src":"47425:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82183,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82113,"src":"47450:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82184,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82168,"src":"47458:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82179,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41257,"src":"47399:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$41257_$","typeString":"type(library Memory)"}},"id":82181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47406:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":41232,"src":"47399:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":82185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47399:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82186,"nodeType":"ExpressionStatement","src":"47399:74:165"},{"id":82191,"nodeType":"UncheckedBlock","src":"47487:55:165","statements":[{"expression":{"id":82189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82187,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82113,"src":"47515:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":82188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47525:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"47515:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82190,"nodeType":"ExpressionStatement","src":"47515:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82120,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82117,"src":"46887:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":82121,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82095,"src":"46891:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"46887:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82193,"initializationExpression":{"assignments":[82117],"declarations":[{"constant":false,"id":82117,"mutability":"mutable","name":"i","nameLocation":"46880:1:165","nodeType":"VariableDeclaration","scope":82193,"src":"46872:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82116,"name":"uint256","nodeType":"ElementaryTypeName","src":"46872:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82119,"initialValue":{"hexValue":"30","id":82118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"46884:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"46872:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"46907:3:165","subExpression":{"id":82123,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82117,"src":"46907:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82125,"nodeType":"ExpressionStatement","src":"46907:3:165"},"nodeType":"ForStatement","src":"46867:685:165"},{"expression":{"arguments":[{"id":82196,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82106,"src":"47604:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":82197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47629:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":82198,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82100,"src":"47632:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82194,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41483,"src":"47569:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$41483_$","typeString":"type(library Hashes)"}},"id":82195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"47576:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":41438,"src":"47569:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":82199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47569:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82093,"id":82200,"nodeType":"Return","src":"47562:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"46500:18:165","parameters":{"id":82090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82085,"mutability":"mutable","name":"router","nameLocation":"46535:6:165","nodeType":"VariableDeclaration","scope":82202,"src":"46519:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82084,"nodeType":"UserDefinedTypeName","pathNode":{"id":82083,"name":"Storage","nameLocations":["46519:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"46519:7:165"},"referencedDeclaration":74493,"src":"46519:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":82089,"mutability":"mutable","name":"_transitions","nameLocation":"46575:12:165","nodeType":"VariableDeclaration","scope":82202,"src":"46543:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83249_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":82087,"nodeType":"UserDefinedTypeName","pathNode":{"id":82086,"name":"Gear.StateTransition","nameLocations":["46543:4:165","46548:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":83249,"src":"46543:20:165"},"referencedDeclaration":83249,"src":"46543:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$83249_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":82088,"nodeType":"ArrayTypeName","src":"46543:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$83249_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"46518:70:165"},"returnParameters":{"id":82093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82202,"src":"46622:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82091,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46622:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46621:9:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82319,"nodeType":"FunctionDefinition","src":"47665:1539:165","nodes":[],"body":{"id":82318,"nodeType":"Block","src":"47986:1218:165","nodes":[],"statements":[{"condition":{"id":82220,"name":"_hasAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82207,"src":"48000:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82249,"nodeType":"IfStatement","src":"47996:752:165","trueBody":{"id":82248,"nodeType":"Block","src":"48025:723:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":82224,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82210,"src":"48430:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48454:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":82983,"src":"48430:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":82226,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82210,"src":"48457:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":82227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48481:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":82985,"src":"48457:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82222,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40965,"src":"48407:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40965_$","typeString":"type(library FROST)"}},"id":82223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48413:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":40634,"src":"48407:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":82228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48407:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82229,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74560,"src":"48501:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48501:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82221,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"48382:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48382:166:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82232,"nodeType":"ExpressionStatement","src":"48382:166:165"},{"expression":{"id":82237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82233,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"48562:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48574:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":82991,"src":"48562:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82236,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82210,"src":"48596:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"48562:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":82238,"nodeType":"ExpressionStatement","src":"48562:57:165"},{"expression":{"id":82246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82239,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"48633:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"48645:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":82994,"src":"48633:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82244,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82212,"src":"48702:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":82242,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84637,"src":"48688:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$84637_$","typeString":"type(library SSTORE2)"}},"id":82243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48696:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":84493,"src":"48688:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":82245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48688:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"48633:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82247,"nodeType":"ExpressionStatement","src":"48633:104:165"}]}},{"body":{"id":82277,"nodeType":"Block","src":"48811:114:165","statements":[{"assignments":[82263],"declarations":[{"constant":false,"id":82263,"mutability":"mutable","name":"_validator","nameLocation":"48833:10:165","nodeType":"VariableDeclaration","scope":82277,"src":"48825:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82262,"name":"address","nodeType":"ElementaryTypeName","src":"48825:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82268,"initialValue":{"baseExpression":{"expression":{"id":82264,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"48846:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48858:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"48846:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82267,"indexExpression":{"id":82266,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82251,"src":"48863:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"48846:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"48825:40:165"},{"expression":{"id":82275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82269,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"48879:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48891:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"48879:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82273,"indexExpression":{"id":82271,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82263,"src":"48895:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"48879:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":82274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"48909:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"48879:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82276,"nodeType":"ExpressionStatement","src":"48879:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82251,"src":"48777:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":82255,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"48781:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"48793:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"48781:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48798:6:165","memberName":"length","nodeType":"MemberAccess","src":"48781:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48777:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82278,"initializationExpression":{"assignments":[82251],"declarations":[{"constant":false,"id":82251,"mutability":"mutable","name":"i","nameLocation":"48770:1:165","nodeType":"VariableDeclaration","scope":82278,"src":"48762:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82250,"name":"uint256","nodeType":"ElementaryTypeName","src":"48762:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82253,"initialValue":{"hexValue":"30","id":82252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48774:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"48762:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"48806:3:165","subExpression":{"id":82259,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82251,"src":"48806:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82261,"nodeType":"ExpressionStatement","src":"48806:3:165"},"nodeType":"ForStatement","src":"48757:168:165"},{"body":{"id":82304,"nodeType":"Block","src":"48986:111:165","statements":[{"assignments":[82291],"declarations":[{"constant":false,"id":82291,"mutability":"mutable","name":"_validator","nameLocation":"49008:10:165","nodeType":"VariableDeclaration","scope":82304,"src":"49000:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82290,"name":"address","nodeType":"ElementaryTypeName","src":"49000:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82295,"initialValue":{"baseExpression":{"id":82292,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82215,"src":"49021:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82294,"indexExpression":{"id":82293,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"49036:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"49021:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"49000:38:165"},{"expression":{"id":82302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":82296,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"49052:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49064:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":82999,"src":"49052:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82300,"indexExpression":{"id":82298,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82291,"src":"49068:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"49052:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":82301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"49082:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"49052:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82303,"nodeType":"ExpressionStatement","src":"49052:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82283,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"48954:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82284,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82215,"src":"48958:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":82285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"48973:6:165","memberName":"length","nodeType":"MemberAccess","src":"48958:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"48954:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82305,"initializationExpression":{"assignments":[82280],"declarations":[{"constant":false,"id":82280,"mutability":"mutable","name":"i","nameLocation":"48947:1:165","nodeType":"VariableDeclaration","scope":82305,"src":"48939:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82279,"name":"uint256","nodeType":"ElementaryTypeName","src":"48939:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82282,"initialValue":{"hexValue":"30","id":82281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48951:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"48939:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"48981:3:165","subExpression":{"id":82287,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82280,"src":"48981:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82289,"nodeType":"ExpressionStatement","src":"48981:3:165"},"nodeType":"ForStatement","src":"48934:163:165"},{"expression":{"id":82310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82306,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"49106:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"49118:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":83003,"src":"49106:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82309,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82215,"src":"49125:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"49106:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82311,"nodeType":"ExpressionStatement","src":"49106:33:165"},{"expression":{"id":82316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82312,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82205,"src":"49149:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82314,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"49161:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":83006,"src":"49149:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82315,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82217,"src":"49180:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"49149:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82317,"nodeType":"ExpressionStatement","src":"49149:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"47674:16:165","parameters":{"id":82218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82205,"mutability":"mutable","name":"_validators","nameLocation":"47724:11:165","nodeType":"VariableDeclaration","scope":82319,"src":"47700:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82204,"nodeType":"UserDefinedTypeName","pathNode":{"id":82203,"name":"Gear.Validators","nameLocations":["47700:4:165","47705:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":83007,"src":"47700:15:165"},"referencedDeclaration":83007,"src":"47700:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$83007_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":82207,"mutability":"mutable","name":"_hasAggregatedPublicKey","nameLocation":"47750:23:165","nodeType":"VariableDeclaration","scope":82319,"src":"47745:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82206,"name":"bool","nodeType":"ElementaryTypeName","src":"47745:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":82210,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"47815:23:165","nodeType":"VariableDeclaration","scope":82319,"src":"47783:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82209,"nodeType":"UserDefinedTypeName","pathNode":{"id":82208,"name":"Gear.AggregatedPublicKey","nameLocations":["47783:4:165","47788:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":82986,"src":"47783:24:165"},"referencedDeclaration":82986,"src":"47783:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$82986_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82212,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"47861:34:165","nodeType":"VariableDeclaration","scope":82319,"src":"47848:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82211,"name":"bytes","nodeType":"ElementaryTypeName","src":"47848:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82215,"mutability":"mutable","name":"_newValidators","nameLocation":"47922:14:165","nodeType":"VariableDeclaration","scope":82319,"src":"47905:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82213,"name":"address","nodeType":"ElementaryTypeName","src":"47905:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82214,"nodeType":"ArrayTypeName","src":"47905:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":82217,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"47954:17:165","nodeType":"VariableDeclaration","scope":82319,"src":"47946:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82216,"name":"uint256","nodeType":"ElementaryTypeName","src":"47946:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47690:287:165"},"returnParameters":{"id":82219,"nodeType":"ParameterList","parameters":[],"src":"47986:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82332,"nodeType":"FunctionDefinition","src":"49210:192:165","nodes":[],"body":{"id":82331,"nodeType":"Block","src":"49275:127:165","nodes":[],"statements":[{"assignments":[82326],"declarations":[{"constant":false,"id":82326,"mutability":"mutable","name":"slot","nameLocation":"49293:4:165","nodeType":"VariableDeclaration","scope":82331,"src":"49285:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49285:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82329,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82327,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82344,"src":"49300:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":82328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49300:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"49285:32:165"},{"AST":{"nativeSrc":"49353:43:165","nodeType":"YulBlock","src":"49353:43:165","statements":[{"nativeSrc":"49367:19:165","nodeType":"YulAssignment","src":"49367:19:165","value":{"name":"slot","nativeSrc":"49382:4:165","nodeType":"YulIdentifier","src":"49382:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"49367:11:165","nodeType":"YulIdentifier","src":"49367:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82323,"isOffset":false,"isSlot":true,"src":"49367:11:165","suffix":"slot","valueSize":1},{"declaration":82326,"isOffset":false,"isSlot":false,"src":"49382:4:165","valueSize":1}],"flags":["memory-safe"],"id":82330,"nodeType":"InlineAssembly","src":"49328:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"49219:7:165","parameters":{"id":82320,"nodeType":"ParameterList","parameters":[],"src":"49226:2:165"},"returnParameters":{"id":82324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82323,"mutability":"mutable","name":"router","nameLocation":"49267:6:165","nodeType":"VariableDeclaration","scope":82332,"src":"49251:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82322,"nodeType":"UserDefinedTypeName","pathNode":{"id":82321,"name":"Storage","nameLocations":["49251:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"49251:7:165"},"referencedDeclaration":74493,"src":"49251:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"49250:24:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82344,"nodeType":"FunctionDefinition","src":"49408:128:165","nodes":[],"body":{"id":82343,"nodeType":"Block","src":"49466:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":82339,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79504,"src":"49510:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82337,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"49483:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49495:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"49483:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49483:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"49524:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"49483:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82336,"id":82342,"nodeType":"Return","src":"49476:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"49417:15:165","parameters":{"id":82333,"nodeType":"ParameterList","parameters":[],"src":"49432:2:165"},"returnParameters":{"id":82336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82344,"src":"49457:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49457:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49456:9:165"},"scope":82432,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82372,"nodeType":"FunctionDefinition","src":"49542:240:165","nodes":[],"body":{"id":82371,"nodeType":"Block","src":"49610:172:165","nodes":[],"statements":[{"assignments":[82352],"declarations":[{"constant":false,"id":82352,"mutability":"mutable","name":"slot","nameLocation":"49628:4:165","nodeType":"VariableDeclaration","scope":82371,"src":"49620:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49620:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82357,"initialValue":{"arguments":[{"id":82355,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82346,"src":"49662:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":82353,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48965,"src":"49635:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48965_$","typeString":"type(library SlotDerivation)"}},"id":82354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49650:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48848,"src":"49635:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":82356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49635:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"49620:52:165"},{"expression":{"id":82365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":82361,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79504,"src":"49709:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82358,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49089,"src":"49682:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$49089_$","typeString":"type(library StorageSlot)"}},"id":82360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"49694:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":49022,"src":"49682:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48977_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":82362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49682:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48977_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":82363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"49723:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48976,"src":"49682:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82364,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82352,"src":"49731:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"49682:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82366,"nodeType":"ExpressionStatement","src":"49682:53:165"},{"eventCall":{"arguments":[{"id":82368,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82352,"src":"49770:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82367,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74549,"src":"49751:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49751:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82370,"nodeType":"EmitStatement","src":"49746:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":82349,"kind":"modifierInvocation","modifierName":{"id":82348,"name":"onlyOwner","nameLocations":["49600:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"49600:9:165"},"nodeType":"ModifierInvocation","src":"49600:9:165"}],"name":"_setStorageSlot","nameLocation":"49551:15:165","parameters":{"id":82347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82346,"mutability":"mutable","name":"namespace","nameLocation":"49581:9:165","nodeType":"VariableDeclaration","scope":82372,"src":"49567:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82345,"name":"string","nodeType":"ElementaryTypeName","src":"49567:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49566:25:165"},"returnParameters":{"id":82350,"nodeType":"ParameterList","parameters":[],"src":"49610:0:165"},"scope":82432,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82431,"nodeType":"FunctionDefinition","src":"49930:396:165","nodes":[],"body":{"id":82430,"nodeType":"Block","src":"49971:355:165","nodes":[],"statements":[{"assignments":[82380],"declarations":[{"constant":false,"id":82380,"mutability":"mutable","name":"router","nameLocation":"49997:6:165","nodeType":"VariableDeclaration","scope":82430,"src":"49981:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82379,"nodeType":"UserDefinedTypeName","pathNode":{"id":82378,"name":"Storage","nameLocations":["49981:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74493,"src":"49981:7:165"},"referencedDeclaration":74493,"src":"49981:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82383,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82381,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82332,"src":"50006:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$74493_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50006:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"49981:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82385,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82380,"src":"50033:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50040:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":74468,"src":"50033:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$83159_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82387,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50053:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":83154,"src":"50033:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":82390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"50069:1:165","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":82389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"50061:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":82388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50061:7:165","typeDescriptions":{}}},"id":82391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50061:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"50033:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82393,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74575,"src":"50073:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50073:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"50025:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50025:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82396,"nodeType":"ExpressionStatement","src":"50025:82:165"},{"assignments":[82398],"declarations":[{"constant":false,"id":82398,"mutability":"mutable","name":"value","nameLocation":"50126:5:165","nodeType":"VariableDeclaration","scope":82430,"src":"50118:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82397,"name":"uint128","nodeType":"ElementaryTypeName","src":"50118:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82404,"initialValue":{"arguments":[{"expression":{"id":82401,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"50142:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"50146:5:165","memberName":"value","nodeType":"MemberAccess","src":"50142:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"50134:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":82399,"name":"uint128","nodeType":"ElementaryTypeName","src":"50134:7:165","typeDescriptions":{}}},"id":82403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50134:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"50118:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82406,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82398,"src":"50170:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"50178:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"50170:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82409,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74649,"src":"50181:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50181:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82405,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"50162:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50162:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82412,"nodeType":"ExpressionStatement","src":"50162:39:165"},{"assignments":[82414],"declarations":[{"constant":false,"id":82414,"mutability":"mutable","name":"actorId","nameLocation":"50220:7:165","nodeType":"VariableDeclaration","scope":82430,"src":"50212:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82413,"name":"address","nodeType":"ElementaryTypeName","src":"50212:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82417,"initialValue":{"expression":{"id":82415,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"50230:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"50234:6:165","memberName":"sender","nodeType":"MemberAccess","src":"50230:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"50212:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":82425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":82419,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82380,"src":"50258:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$74493_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50265:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":74492,"src":"50258:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$83211_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"50278:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":83192,"src":"50258:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":82423,"indexExpression":{"id":82422,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82414,"src":"50287:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"50258:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"50299:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"50258:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82426,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74623,"src":"50302:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50302:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82418,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"50250:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50250:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82429,"nodeType":"ExpressionStatement","src":"50250:69:165"}]},"documentation":{"id":82373,"nodeType":"StructuredDocumentation","src":"49788:137:165","text":" @dev Receives Ether from the `Mirror` instances when they\n perform state transitions with `valueToReceive`."},"implemented":true,"kind":"receive","modifiers":[{"id":82376,"kind":"modifierInvocation","modifierName":{"id":82375,"name":"whenNotPaused","nameLocations":["49957:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43748,"src":"49957:13:165"},"nodeType":"ModifierInvocation","src":"49957:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82374,"nodeType":"ParameterList","parameters":[],"src":"49937:2:165"},"returnParameters":{"id":82377,"nodeType":"ParameterList","parameters":[],"src":"49971:0:165"},"scope":82432,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79488,"name":"IRouter","nameLocations":["1576:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":75008,"src":"1576:7:165"},"id":79489,"nodeType":"InheritanceSpecifier","src":"1576:7:165"},{"baseName":{"id":79490,"name":"OwnableUpgradeable","nameLocations":["1589:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1589:18:165"},"id":79491,"nodeType":"InheritanceSpecifier","src":"1589:18:165"},{"baseName":{"id":79492,"name":"PausableUpgradeable","nameLocations":["1613:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43858,"src":"1613:19:165"},"id":79493,"nodeType":"InheritanceSpecifier","src":"1613:19:165"},{"baseName":{"id":79494,"name":"EIP712Upgradeable","nameLocations":["1638:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":44416,"src":"1638:17:165"},"id":79495,"nodeType":"InheritanceSpecifier","src":"1638:17:165"},{"baseName":{"id":79496,"name":"NoncesUpgradeable","nameLocations":["1661:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":43698,"src":"1661:17:165"},"id":79497,"nodeType":"InheritanceSpecifier","src":"1661:17:165"},{"baseName":{"id":79498,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1684:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43943,"src":"1684:35:165"},"id":79499,"nodeType":"InheritanceSpecifier","src":"1684:35:165"},{"baseName":{"id":79500,"name":"UUPSUpgradeable","nameLocations":["1725:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1725:15:165"},"id":79501,"nodeType":"InheritanceSpecifier","src":"1725:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82432,46243,44833,43943,43698,44416,44823,43858,42322,43484,42590,75008],"name":"Router","nameLocation":"1562:6:165","scope":82433,"usedErrors":[42158,42163,42339,42342,43601,43737,43740,43875,45427,45440,46100,46105,47372,48774,50701,50706,50711,53880,74552,74555,74558,74560,74563,74566,74569,74572,74575,74578,74585,74594,74599,74606,74609,74611,74613,74615,74617,74619,74621,74623,74625,74627,74629,74631,74633,74635,74637,74639,74641,74643,74645,74647,74649,82962,82965,82968,82971,82974,82977,82980],"usedEvents":[42169,42347,43729,43734,44781,44803,74498,74503,74508,74513,74520,74525,74530,74537,74544,74549]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":165} \ No newline at end of file diff --git a/ethexe/ethereum/abi/WrappedVara.json b/ethexe/ethereum/abi/WrappedVara.json index bbc49007d54..ff4a8c37b5a 100644 --- a/ethexe/ethereum/abi/WrappedVara.json +++ b/ethexe/ethereum/abi/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":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"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":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"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":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"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":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"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":"FailedCall","inputs":[]},{"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"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206125c65f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516124ff90816100c782396080518181816115ec01526116bb0152f35b6001600160401b0319166001600160401b039081175f5160206125c65f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1323:2191:166:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;7983:34:30;7979:146;;-1:-1:-1;1323:2191:166;;;;;;;;1052:13:60;1323:2191:166;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;8085:29:30;;1323:2191:166;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1323:2191:166;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1323:2191:166:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2357:1:29;1323:2191:166;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1323:2191:166;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;4771:20:31;1323:2191:166;;:::i;:::-;4771:20:31;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2286:15:33;;:26;2282:97;;7051:25:77;7105:8;1323:2191:166;;;;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;2420:78:33;1323:2191:166;2420:78:33;;1323:2191:166;1279:95:33;1323:2191:166;;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;;;;;;;;1279:95:33;;1323:2191:166;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;2420:78:33;;;1323:2191:166;2420:78:33;;:::i;:::-;1323:2191:166;2410:89:33;;3980:23:40;;:::i;:::-;3993:249:80;1323:2191:166;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1323:2191:166;;;3993:249:80;1323:2191:166;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;2623:15:33;;;2619:88;;10021:4:31;;;;;:::i;2619:88:33:-;2661:35;;;;;1323:2191:166;2661:35:33;1323:2191:166;;;;;;2661:35:33;2282:97;2335:33;;;;1323:2191:166;2335:33:33;1323:2191:166;;;;2335:33:33;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;4301:16:30;1323:2191:166;;4724:16:30;;:34;;;;1323:2191:166;4803:1:30;4788:16;:50;;;;1323:2191:166;4853:13:30;:30;;;;1323:2191:166;4849:91:30;;;1323:2191:166;4803:1:30;-1:-1:-1;;;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;1323:2191:166;;;:::i;:::-;1533:14;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;1323:2191:166;;:::i;:::-;6891:76:30;;;:::i;:::-;1323:2191:166;;;;;;;:::i;:::-;4803:1:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;1653:9:166;8832:5:31;;;:::i;:::-;5064:101:30;;1323:2191:166;5064:101:30;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5140:14:30;1323:2191:166;;;4803:1:30;1323:2191:166;;5140:14:30;1323:2191:166;8703:91:31;8751:32;;;1323:2191:166;8751:32:31;1323:2191:166;;;;;8751:32:31;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;4977:67:30;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;4849:91;6496:23;;;1323:2191:166;4906:23:30;1323:2191:166;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;4545:5:31;1323:2191:166;;:::i;:::-;;;966:10:34;;4545:5:31;:::i;:::-;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5647:18:40;:43;;;1323:2191:166;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;1323:2191:166;;;;5870:4:40;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;5647:43:40;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;5669:21:40;5647:43;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;1479:5:32;1323:2191:166;;:::i;:::-;;;966:10:34;1448:5:32;966:10:34;;1448:5:32;;:::i;:::-;1479;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;1323:2191:166;;3975:40:29;1323:2191:166;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;6429:44:30;;;;;1323:2191:166;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;1323:2191:166;;;;;;;:::i;:::-;1533:14;;:::i;:::-;6891:76:30;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;6959:1:30;;-1:-1:-1;;;;;1323:2191:166;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1323:2191:166;;:::i;:::-;6891:76:30;;:::i;:::-;1323:2191:166;;;;;;:::i;:::-;6591:4:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;6654:20:30;1323:2191:166;;;2486:1;1323:2191;;6654:20:30;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;6429:44:30;2486:1:166;1323:2191;;-1:-1:-1;;;;;1323:2191:166;6448:25:30;;6429:44;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;4824:6:60;-1:-1:-1;;;;;1323:2191:166;4815:4:60;4807:23;4803:145;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;4803:145:60;4578:29;;;1323:2191:166;4908:29:60;1323:2191:166;;4908:29:60;1323:2191:166;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;1323:2191:166;4392:4:60;4384:23;;;:120;;;;1323:2191:166;4367:251:60;;;2303:62:29;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;5865:52:60;;1323:2191:166;;5865:52:60;;;1323:2191:166;-1:-1:-1;5861:437:60;;1805:47:53;;;;1323:2191:166;6227:60:60;1323:2191:166;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;2407:36:53;-1:-1:-1;;2407:36:53;1323:2191:166;;2458:15:53;:11;;1323:2191:166;4065:25:66;;4107:55;4065:25;;;;;;1323:2191:166;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;1323:2191:166:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1323:2191:166;6159:70:53;6199:19;;;1323:2191:166;6199:19:53;1323:2191:166;;6199:19:53;1744:119;1805:47;;;1323:2191:166;1805:47:53;1323:2191:166;;;;1805:47:53;5955:120:60;6026:34;;;1323:2191:166;6026:34:60;1323:2191:166;;;;6026:34:60;5865:52;;;;1323:2191:166;5865:52:60;;1323:2191:166;5865:52:60;;;;;;1323:2191:166;5865:52:60;;;:::i;:::-;;;1323:2191:166;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;4462:42:60;;;-1:-1:-1;4384:120:60;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;1005:5:32;1323:2191:166;;966:10:34;1005:5:32;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;8832:5;1323:2191:166;;;8832:5:31;;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;3980:23:40;;:::i;:::-;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;3246:2;1323:2191;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;6102:5:31;1323:2191:166;;:::i;:::-;;;:::i;:::-;;;966:10:34;6066:5:31;966:10:34;;6066:5:31;;:::i;:::-;6102;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;10021:4:31;1323:2191:166;;:::i;:::-;;;966:10:34;;10021:4:31;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;:::o;:::-;-1:-1:-1;;;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;:::o;1533:14::-;1323:2191;;;;;;;:::i;:::-;1533:14;1323:2191;;-1:-1:-1;;;1533:14:166;;;;:::o;1323:2191::-;-1:-1:-1;;;;;1323:2191:166;;;;;4771:13:31;1323:2191:166;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1323:2191:166;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1323:2191:166;;3509:1:29;3534:31;11649:476:31;;;4771:20;;;:::i;:::-;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11814:36:31;;11810:309;;11649:476;;;;;:::o;11810:309::-;11870:24;;;11866:130;;-1:-1:-1;;;;;1323:2191:166;;11045:19:31;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;11139:90;;11238:20;;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11810:309:31;;;;;;11139:90;11187:31;;;-1:-1:-1;11187:31:31;-1:-1:-1;11187:31:31;1323:2191:166;;-1:-1:-1;11187:31:31;11041:89;11087:32;;;-1:-1:-1;11087:32:31;-1:-1:-1;11087:32:31;1323:2191:166;;-1:-1:-1;11087:32:31;11866:130;11921:60;;;;;;-1:-1:-1;11921:60:31;1323:2191:166;;;;;;11921:60:31;1323:2191:166;;;;;;-1:-1:-1;11921:60:31;6509:300;-1:-1:-1;;;;;1323:2191:166;;6592:18:31;;6588:86;;-1:-1:-1;;;;;1323:2191:166;;6687:16:31;;6683:86;;1323:2191:166;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;8262:25:31;1323:2191:166;;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;6608:1:31;1323:2191:166;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;;;;;;;;;;;8262:25:31;6509:300::o;7509:115::-;7559:50;;;;6608:1;7559:50;;1323:2191:166;;;;;;6608:1:31;7559:50;6588:86;6633:30;;;6608:1;6633:30;6608:1;6633:30;1323:2191:166;;6608:1:31;6633:30;2658:162:29;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1323:2191:166;;-1:-1:-1;2763:40:29;9163:206:31;;;;-1:-1:-1;;;;;1323:2191:166;9233:21:31;;9229:89;;1323:2191:166;9252:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;9252:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;;9252:1:31;1323:2191:166;;8262:25:31;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;8262:25:31;9163:206::o;7509:115::-;7559:50;;;;;9252:1;7559:50;;1323:2191:166;;;;;;9252:1:31;7559:50;10880:487;;-1:-1:-1;;;;;1323:2191:166;;;11045:19:31;;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;;11139:90;;11319:31;11238:20;;1323:2191:166;11238:20:31;;:::i;:::-;1323:2191:166;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;11319:31:31;10880:487::o;7124:1170::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;8262:25:31;;1323:2191:166;;7822:16:31;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;7818:429:31;1323:2191:166;;;;;8262:25:31;7124:1170::o;7818:429::-;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;7818:429:31;;1323:2191:166;;;;;1653:9;;;;;1323:2191;1653:9;4016:191:40;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1323:2191:166;;4107:92:40;;;;1323:2191:166;1959:95:40;1323:2191:166;;;1959:95:40;;1323:2191:166;1959:95:40;;;1323:2191:166;4170:13:40;1959:95;;;1323:2191:166;4193:4:40;1959:95;;;1323:2191:166;1959:95:40;4107:92;;;;;;:::i;:::-;1323:2191:166;4097:103:40;;4016:191;:::o;7082:141:30:-;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5203:1551:77;;;6283:66;6270:79;;6266:164;;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1323:2191:166;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6541:24::-;1323:2191:166;;;-1:-1:-1;1323:2191:166;;;;;6266:164:77;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1323:2191:166;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1323:2191:166;7462:38:77;;1323:2191:166;;7523:23:77;;;7375:20;7523:23;1323:2191:166;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1323:2191:166;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1323:2191:166;;;7375:20:77;7763:32;1323:2191:166;;;;7375:20:77;1323:2191:166;;;;;7375:20:77;1323:2191:166;6928:687:40;1323:2191:166;;:::i;:::-;;;;7100:22:40;;;;1323:2191:166;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1323:2191:166;;:::i;:::-;;;;8017:25:40;;;;1323:2191:166;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1323:2191:166;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1323:2191:166;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1323:2191:166;;;;4933:24:66;1323:2191:166;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":5612,"length":32},{"start":5819,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","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","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"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\":[],\"name\":\"FailedCall\",\"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\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token. VARA is also used for paying fees, staking and governance on Vara Network, while WVARA does all of the same things but on Ethereum. On Ethereum network, WVARA is used as an executable balance for programs (Mirrors). Please note that this version of WrappedVara is only used in local development environments, in production we use this: - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"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.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"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.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"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.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"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.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"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\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"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\":\"Returns the value of tokens owned by `account`.\"},\"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. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"initialize(address)\":{\"details\":\"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.\",\"params\":{\"initialOwner\":\"The address that will be able to mint tokens.\"}},\"mint(address,uint256)\":{\"details\":\"Mints `amount` tokens to `to`.\",\"params\":{\"amount\":\"The amount of tokens to mint.\",\"to\":\"The address to mint tokens to.\"}},\"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.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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\":\"Returns the value of tokens in existence.\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0\",\"dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51\"]},\"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\":\"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739\",\"dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC\"]},\"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\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb\",\"dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"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":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"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":[],"type":"error","name":"FailedCall"},{"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":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"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":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"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":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"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":"Returns the value of tokens owned by `account`."},"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. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"initialize(address)":{"details":"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.","params":{"initialOwner":"The address that will be able to mint tokens."}},"mint(address,uint256)":{"details":"Mints `amount` tokens to `to`.","params":{"amount":"The amount of tokens to mint.","to":"The address to mint tokens to."}},"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."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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":"Returns the value of tokens in existence."},"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."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022","urls":["bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0","dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51"],"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":"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659","urls":["bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739","dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC"],"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":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e","urls":["bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23","dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd","urls":["bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb","dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":82497,"exportedSymbols":{"ERC20BurnableUpgradeable":[43269],"ERC20PermitUpgradeable":[43438],"ERC20Upgradeable":[43207],"Initializable":[42590],"OwnableUpgradeable":[42322],"UUPSUpgradeable":[46243],"WrappedVara":[82496]},"nodeType":"SourceUnit","src":"74:3441:166","nodes":[{"id":82355,"nodeType":"PragmaDirective","src":"74:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82357,"nodeType":"ImportDirective","src":"100:101:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":82356,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82359,"nodeType":"ImportDirective","src":"202:96:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":42591,"symbolAliases":[{"foreign":{"id":82358,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42590,"src":"210:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82361,"nodeType":"ImportDirective","src":"299:102:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":43208,"symbolAliases":[{"foreign":{"id":82360,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43207,"src":"307:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82363,"nodeType":"ImportDirective","src":"402:135:166","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":82497,"sourceUnit":43270,"symbolAliases":[{"foreign":{"id":82362,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43269,"src":"415:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82365,"nodeType":"ImportDirective","src":"538:131:166","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":82497,"sourceUnit":43439,"symbolAliases":[{"foreign":{"id":82364,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43438,"src":"551:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82367,"nodeType":"ImportDirective","src":"670:88:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82497,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":82366,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"678:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82496,"nodeType":"ContractDefinition","src":"1323:2191:166","nodes":[{"id":82383,"nodeType":"VariableDeclaration","src":"1496:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1520:10:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82381,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":82382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1533:14:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":82386,"nodeType":"VariableDeclaration","src":"1553:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1577:12:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82384,"name":"string","nodeType":"ElementaryTypeName","src":"1553:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":82385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1592:7:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":82389,"nodeType":"VariableDeclaration","src":"1605:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1630:20:166","scope":82496,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":82388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1653:9:166","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":82397,"nodeType":"FunctionDefinition","src":"1737:53:166","nodes":[],"body":{"id":82396,"nodeType":"Block","src":"1751:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82393,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1761:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82395,"nodeType":"ExpressionStatement","src":"1761:22:166"}]},"documentation":{"id":82390,"nodeType":"StructuredDocumentation","src":"1669:63:166","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82391,"nodeType":"ParameterList","parameters":[],"src":"1748:2:166"},"returnParameters":{"id":82392,"nodeType":"ParameterList","parameters":[],"src":"1751:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82432,"nodeType":"FunctionDefinition","src":"2061:297:166","nodes":[],"body":{"id":82431,"nodeType":"Block","src":"2122:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82406,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2145:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82407,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82386,"src":"2157:12:166","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":82405,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2132:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82409,"nodeType":"ExpressionStatement","src":"2132:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82410,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2180:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2180:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82412,"nodeType":"ExpressionStatement","src":"2180:22:166"},{"expression":{"arguments":[{"id":82414,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82400,"src":"2227:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82413,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2212:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:28:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82416,"nodeType":"ExpressionStatement","src":"2212:28:166"},{"expression":{"arguments":[{"id":82418,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2269:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82417,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2250:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82420,"nodeType":"ExpressionStatement","src":"2250:30:166"},{"expression":{"arguments":[{"id":82422,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82400,"src":"2297:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82423,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82389,"src":"2311:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:2:166","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":82425,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[82479],"referencedDeclaration":82479,"src":"2340:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":82426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2334:16:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2311:39:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82421,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"2291:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:60:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82430,"nodeType":"ExpressionStatement","src":"2291:60:166"}]},"documentation":{"id":82398,"nodeType":"StructuredDocumentation","src":"1796:260:166","text":" @dev Initializes the WrappedVara contract with the token name and symbol.\n @param initialOwner The address that will be able to mint tokens.\n @dev The initialOwner receives the 1 million WVARA tokens minted during initialization."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":82403,"kind":"modifierInvocation","modifierName":{"id":82402,"name":"initializer","nameLocations":["2110:11:166"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"2110:11:166"},"nodeType":"ModifierInvocation","src":"2110:11:166"}],"name":"initialize","nameLocation":"2070:10:166","parameters":{"id":82401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82400,"mutability":"mutable","name":"initialOwner","nameLocation":"2089:12:166","nodeType":"VariableDeclaration","scope":82432,"src":"2081:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82399,"name":"address","nodeType":"ElementaryTypeName","src":"2081:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2080:22:166"},"returnParameters":{"id":82404,"nodeType":"ParameterList","parameters":[],"src":"2122:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82459,"nodeType":"FunctionDefinition","src":"2431:218:166","nodes":[],"body":{"id":82458,"nodeType":"Block","src":"2489:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82442,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2512:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82443,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82386,"src":"2524:12:166","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":82441,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2499:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82445,"nodeType":"ExpressionStatement","src":"2499:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82446,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2547:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82448,"nodeType":"ExpressionStatement","src":"2547:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82450,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"2594:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2594:7:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82449,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2579:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:23:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82453,"nodeType":"ExpressionStatement","src":"2579:23:166"},{"expression":{"arguments":[{"id":82455,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82383,"src":"2631:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82454,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2612:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2612:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82457,"nodeType":"ExpressionStatement","src":"2612:30:166"}]},"documentation":{"id":82433,"nodeType":"StructuredDocumentation","src":"2364:62:166","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82436,"kind":"modifierInvocation","modifierName":{"id":82435,"name":"onlyOwner","nameLocations":["2462:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2462:9:166"},"nodeType":"ModifierInvocation","src":"2462:9:166"},{"arguments":[{"hexValue":"32","id":82438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2486:1:166","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":82439,"kind":"modifierInvocation","modifierName":{"id":82437,"name":"reinitializer","nameLocations":["2472:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"2472:13:166"},"nodeType":"ModifierInvocation","src":"2472:16:166"}],"name":"reinitialize","nameLocation":"2440:12:166","parameters":{"id":82434,"nodeType":"ParameterList","parameters":[],"src":"2452:2:166"},"returnParameters":{"id":82440,"nodeType":"ParameterList","parameters":[],"src":"2489:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82469,"nodeType":"FunctionDefinition","src":"2814:84:166","nodes":[],"body":{"id":82468,"nodeType":"Block","src":"2896:2:166","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":82460,"nodeType":"StructuredDocumentation","src":"2655:154:166","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":82466,"kind":"modifierInvocation","modifierName":{"id":82465,"name":"onlyOwner","nameLocations":["2886:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2886:9:166"},"nodeType":"ModifierInvocation","src":"2886:9:166"}],"name":"_authorizeUpgrade","nameLocation":"2823:17:166","overrides":{"id":82464,"nodeType":"OverrideSpecifier","overrides":[],"src":"2877:8:166"},"parameters":{"id":82463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82462,"mutability":"mutable","name":"newImplementation","nameLocation":"2849:17:166","nodeType":"VariableDeclaration","scope":82469,"src":"2841:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82461,"name":"address","nodeType":"ElementaryTypeName","src":"2841:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2840:27:166"},"returnParameters":{"id":82467,"nodeType":"ParameterList","parameters":[],"src":"2896:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82479,"nodeType":"FunctionDefinition","src":"3172:83:166","nodes":[],"body":{"id":82478,"nodeType":"Block","src":"3229:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":82476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:2:166","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":82475,"id":82477,"nodeType":"Return","src":"3239:9:166"}]},"baseFunctions":[42727],"documentation":{"id":82470,"nodeType":"StructuredDocumentation","src":"2904:263:166","text":" @dev Returns the number of decimals used to get its user representation.\n Also see documentation about decimals:\n - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3181:8:166","overrides":{"id":82472,"nodeType":"OverrideSpecifier","overrides":[],"src":"3204:8:166"},"parameters":{"id":82471,"nodeType":"ParameterList","parameters":[],"src":"3189:2:166"},"returnParameters":{"id":82475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82479,"src":"3222:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82473,"name":"uint8","nodeType":"ElementaryTypeName","src":"3222:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3221:7:166"},"scope":82496,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82495,"nodeType":"FunctionDefinition","src":"3419:93:166","nodes":[],"body":{"id":82494,"nodeType":"Block","src":"3478:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82490,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82482,"src":"3494:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82491,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82484,"src":"3498:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82489,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"3488:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3488:17:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82493,"nodeType":"ExpressionStatement","src":"3488:17:166"}]},"documentation":{"id":82480,"nodeType":"StructuredDocumentation","src":"3261:153:166","text":" @dev Mints `amount` tokens to `to`.\n @param to The address to mint tokens to.\n @param amount The amount of tokens to mint."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":82487,"kind":"modifierInvocation","modifierName":{"id":82486,"name":"onlyOwner","nameLocations":["3468:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"3468:9:166"},"nodeType":"ModifierInvocation","src":"3468:9:166"}],"name":"mint","nameLocation":"3428:4:166","parameters":{"id":82485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82482,"mutability":"mutable","name":"to","nameLocation":"3441:2:166","nodeType":"VariableDeclaration","scope":82495,"src":"3433:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82481,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82484,"mutability":"mutable","name":"amount","nameLocation":"3453:6:166","nodeType":"VariableDeclaration","scope":82495,"src":"3445:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82483,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3432:28:166"},"returnParameters":{"id":82488,"nodeType":"ParameterList","parameters":[],"src":"3478:0:166"},"scope":82496,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":82369,"name":"Initializable","nameLocations":["1351:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42590,"src":"1351:13:166"},"id":82370,"nodeType":"InheritanceSpecifier","src":"1351:13:166"},{"baseName":{"id":82371,"name":"ERC20Upgradeable","nameLocations":["1370:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":43207,"src":"1370:16:166"},"id":82372,"nodeType":"InheritanceSpecifier","src":"1370:16:166"},{"baseName":{"id":82373,"name":"ERC20BurnableUpgradeable","nameLocations":["1392:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":43269,"src":"1392:24:166"},"id":82374,"nodeType":"InheritanceSpecifier","src":"1392:24:166"},{"baseName":{"id":82375,"name":"OwnableUpgradeable","nameLocations":["1422:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1422:18:166"},"id":82376,"nodeType":"InheritanceSpecifier","src":"1422:18:166"},{"baseName":{"id":82377,"name":"ERC20PermitUpgradeable","nameLocations":["1446:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":43438,"src":"1446:22:166"},"id":82378,"nodeType":"InheritanceSpecifier","src":"1446:22:166"},{"baseName":{"id":82379,"name":"UUPSUpgradeable","nameLocations":["1474:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1474:15:166"},"id":82380,"nodeType":"InheritanceSpecifier","src":"1474:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":82368,"nodeType":"StructuredDocumentation","src":"760:562:166","text":" @dev Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token.\n VARA is also used for paying fees, staking and governance on Vara Network,\n while WVARA does all of the same things but on Ethereum.\n On Ethereum network, WVARA is used as an executable balance for programs (Mirrors).\n Please note that this version of WrappedVara is only used in local development environments,\n in production we use this:\n - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol"},"fullyImplemented":true,"linearizedBaseContracts":[82496,46243,44833,43438,43698,44416,44823,46898,42322,43269,43207,44875,46862,46836,43484,42590],"name":"WrappedVara","nameLocation":"1332:11:166","scope":82497,"usedErrors":[42158,42163,42339,42342,43304,43311,43601,44845,44850,44855,44864,44869,44874,45427,45440,46100,46105,47372,48774,50701,50706,50711],"usedEvents":[42169,42347,44781,44803,46770,46779]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":166} \ 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":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"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":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"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":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"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":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"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":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"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":"FailedCall","inputs":[]},{"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"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206125c65f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516124ff90816100c782396080518181816115ec01526116bb0152f35b6001600160401b0319166001600160401b039081175f5160206125c65f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1323:2191:166:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;7983:34:30;7979:146;;-1:-1:-1;1323:2191:166;;;;;;;;1052:13:60;1323:2191:166;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;8085:29:30;;1323:2191:166;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1323:2191:166;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"1323:2191:166:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2357:1:29;1323:2191:166;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1323:2191:166;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;4771:20:31;1323:2191:166;;:::i;:::-;4771:20:31;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2286:15:33;;:26;2282:97;;7051:25:77;7105:8;1323:2191:166;;;;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;2420:78:33;1323:2191:166;2420:78:33;;1323:2191:166;1279:95:33;1323:2191:166;;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;;;;;;;;1279:95:33;;1323:2191:166;1279:95:33;1323:2191:166;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;1279:95:33;;1323:2191:166;;2420:78:33;;;1323:2191:166;2420:78:33;;:::i;:::-;1323:2191:166;2410:89:33;;3980:23:40;;:::i;:::-;3993:249:80;1323:2191:166;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;1323:2191:166;;;3993:249:80;1323:2191:166;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;2623:15:33;;;2619:88;;10021:4:31;;;;;:::i;2619:88:33:-;2661:35;;;;;1323:2191:166;2661:35:33;1323:2191:166;;;;;;2661:35:33;2282:97;2335:33;;;;1323:2191:166;2335:33:33;1323:2191:166;;;;2335:33:33;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;4301:16:30;1323:2191:166;;4724:16:30;;:34;;;;1323:2191:166;4803:1:30;4788:16;:50;;;;1323:2191:166;4853:13:30;:30;;;;1323:2191:166;4849:91:30;;;1323:2191:166;4803:1:30;-1:-1:-1;;;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;1323:2191:166;;;:::i;:::-;1533:14;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;1323:2191:166;;:::i;:::-;6891:76:30;;;:::i;:::-;1323:2191:166;;;;;;;:::i;:::-;4803:1:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;1653:9:166;8832:5:31;;;:::i;:::-;5064:101:30;;1323:2191:166;5064:101:30;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5140:14:30;1323:2191:166;;;4803:1:30;1323:2191:166;;5140:14:30;1323:2191:166;8703:91:31;8751:32;;;1323:2191:166;8751:32:31;1323:2191:166;;;;;8751:32:31;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;4977:67:30;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;4977:67:30;;4849:91;6496:23;;;1323:2191:166;4906:23:30;1323:2191:166;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;4545:5:31;1323:2191:166;;:::i;:::-;;;966:10:34;;4545:5:31;:::i;:::-;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;5647:18:40;:43;;;1323:2191:166;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;1323:2191:166;;;;5870:4:40;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;1323:2191:166;;;;;;;5647:43:40;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;5669:21:40;5647:43;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;;;;;;972:64:36;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;1479:5:32;1323:2191:166;;:::i;:::-;;;966:10:34;1448:5:32;966:10:34;;1448:5:32;;:::i;:::-;1479;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;1323:2191:166;;3975:40:29;1323:2191:166;;;;;;;-1:-1:-1;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;6429:44:30;;;;;1323:2191:166;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;1323:2191:166;;;;;;;:::i;:::-;1533:14;;:::i;:::-;6891:76:30;;:::i;:::-;;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;6891:76:30;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;6959:1:30;;-1:-1:-1;;;;;1323:2191:166;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;1323:2191:166;;:::i;:::-;6891:76:30;;:::i;:::-;1323:2191:166;;;;;;:::i;:::-;6591:4:30;1323:2191:166;;-1:-1:-1;;;1323:2191:166;;;;6891:76:30;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;2581:7:31;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;6654:20:30;1323:2191:166;;;2486:1;1323:2191;;6654:20:30;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;2581:7:31;1323:2191:166;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;6429:44:30;2486:1:166;1323:2191;;-1:-1:-1;;;;;1323:2191:166;6448:25:30;;6429:44;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;4824:6:60;-1:-1:-1;;;;;1323:2191:166;4815:4:60;4807:23;4803:145;;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;4803:145:60;4578:29;;;1323:2191:166;4908:29:60;1323:2191:166;;4908:29:60;1323:2191:166;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;1323:2191:166;4392:4:60;4384:23;;;:120;;;;1323:2191:166;4367:251:60;;;2303:62:29;;:::i;:::-;1323:2191:166;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;1323:2191:166;;;;;;;;;5865:52:60;;1323:2191:166;;5865:52:60;;;1323:2191:166;-1:-1:-1;5861:437:60;;1805:47:53;;;;1323:2191:166;6227:60:60;1323:2191:166;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;2407:36:53;-1:-1:-1;;2407:36:53;1323:2191:166;;2458:15:53;:11;;1323:2191:166;4065:25:66;;4107:55;4065:25;;;;;;1323:2191:166;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;1323:2191:166:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1323:2191:166;6159:70:53;6199:19;;;1323:2191:166;6199:19:53;1323:2191:166;;6199:19:53;1744:119;1805:47;;;1323:2191:166;1805:47:53;1323:2191:166;;;;1805:47:53;5955:120:60;6026:34;;;1323:2191:166;6026:34:60;1323:2191:166;;;;6026:34:60;5865:52;;;;1323:2191:166;5865:52:60;;1323:2191:166;5865:52:60;;;;;;1323:2191:166;5865:52:60;;;:::i;:::-;;;1323:2191:166;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;4462:42:60;;;-1:-1:-1;4384:120:60;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;1005:5:32;1323:2191:166;;966:10:34;1005:5:32;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;1323:2191:166;;8707:21:31;8703:91;;8832:5;1323:2191:166;;;8832:5:31;;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;3980:23:40;;:::i;:::-;1323:2191:166;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;3246:2;1323:2191;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;6102:5:31;1323:2191:166;;:::i;:::-;;;:::i;:::-;;;966:10:34;6066:5:31;966:10:34;;6066:5:31;;:::i;:::-;6102;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;-1:-1:-1;;1323:2191:166;;;;10021:4:31;1323:2191:166;;:::i;:::-;;;966:10:34;;10021:4:31;:::i;1323:2191:166:-;;;;;;-1:-1:-1;;1323:2191:166;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1323:2191:166;;;;;;;:::o;:::-;-1:-1:-1;;;;;1323:2191:166;;;;;;-1:-1:-1;;1323:2191:166;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1323:2191:166;;;;:::o;1533:14::-;1323:2191;;;;;;;:::i;:::-;1533:14;1323:2191;;-1:-1:-1;;;1533:14:166;;;;:::o;1323:2191::-;-1:-1:-1;;;;;1323:2191:166;;;;;4771:13:31;1323:2191:166;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1323:2191:166;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;1323:2191:166;;;;;;;-1:-1:-1;;;;;1323:2191:166;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1323:2191:166;;3509:1:29;3534:31;11649:476:31;;;4771:20;;;:::i;:::-;1323:2191:166;;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11814:36:31;;11810:309;;11649:476;;;;;:::o;11810:309::-;11870:24;;;11866:130;;-1:-1:-1;;;;;1323:2191:166;;11045:19:31;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;11139:90;;11238:20;;;:::i;:::-;:29;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;-1:-1:-1;1323:2191:166;;;;;11810:309:31;;;;;;11139:90;11187:31;;;-1:-1:-1;11187:31:31;-1:-1:-1;11187:31:31;1323:2191:166;;-1:-1:-1;11187:31:31;11041:89;11087:32;;;-1:-1:-1;11087:32:31;-1:-1:-1;11087:32:31;1323:2191:166;;-1:-1:-1;11087:32:31;11866:130;11921:60;;;;;;-1:-1:-1;11921:60:31;1323:2191:166;;;;;;11921:60:31;1323:2191:166;;;;;;-1:-1:-1;11921:60:31;6509:300;-1:-1:-1;;;;;1323:2191:166;;6592:18:31;;6588:86;;-1:-1:-1;;;;;1323:2191:166;;6687:16:31;;6683:86;;1323:2191:166;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;8262:25:31;1323:2191:166;;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;6608:1:31;1323:2191:166;;;6608:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;6608:1:31;1323:2191:166;;;;;;;;;;;;8262:25:31;6509:300::o;7509:115::-;7559:50;;;;6608:1;7559:50;;1323:2191:166;;;;;;6608:1:31;7559:50;6588:86;6633:30;;;6608:1;6633:30;6608:1;6633:30;1323:2191:166;;6608:1:31;6633:30;2658:162:29;-1:-1:-1;;;;;;;;;;;1323:2191:166;-1:-1:-1;;;;;1323:2191:166;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1323:2191:166;;-1:-1:-1;2763:40:29;9163:206:31;;;;-1:-1:-1;;;;;1323:2191:166;9233:21:31;;9229:89;;1323:2191:166;9252:1:31;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;9252:1:31;1323:2191:166;;7513:19:31;;;7509:115;;1323:2191:166;;9252:1:31;1323:2191:166;;8262:25:31;1323:2191:166;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;8262:25:31;9163:206::o;7509:115::-;7559:50;;;;;9252:1;7559:50;;1323:2191:166;;;;;;9252:1:31;7559:50;10880:487;;-1:-1:-1;;;;;1323:2191:166;;;11045:19:31;;11041:89;;-1:-1:-1;;;;;1323:2191:166;;11143:21:31;;11139:90;;11319:31;11238:20;;1323:2191:166;11238:20:31;;:::i;:::-;1323:2191:166;-1:-1:-1;1323:2191:166;;;;;-1:-1:-1;1323:2191:166;;;;;;;11319:31:31;10880:487::o;7124:1170::-;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;-1:-1:-1;;;;;1323:2191:166;;;;8262:25:31;;1323:2191:166;;7822:16:31;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;-1:-1:-1;;;;;;;;;;;1323:2191:166;7818:429:31;1323:2191:166;;;;;8262:25:31;7124:1170::o;7818:429::-;1323:2191:166;;;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;;;;;;;;7818:429:31;;1323:2191:166;;;;;1653:9;;;;;1323:2191;1653:9;4016:191:40;4129:17;;:::i;:::-;4148:20;;:::i;:::-;1323:2191:166;;4107:92:40;;;;1323:2191:166;1959:95:40;1323:2191:166;;;1959:95:40;;1323:2191:166;1959:95:40;;;1323:2191:166;4170:13:40;1959:95;;;1323:2191:166;4193:4:40;1959:95;;;1323:2191:166;1959:95:40;4107:92;;;;;;:::i;:::-;1323:2191:166;4097:103:40;;4016:191;:::o;7082:141:30:-;1323:2191:166;-1:-1:-1;;;;;;;;;;;1323:2191:166;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5203:1551:77;;;6283:66;6270:79;;6266:164;;1323:2191:166;;;;;;-1:-1:-1;1323:2191:166;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1323:2191:166;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6541:24::-;1323:2191:166;;;-1:-1:-1;1323:2191:166;;;;;6266:164:77;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;1323:2191:166;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1323:2191:166;7462:38:77;;1323:2191:166;;7523:23:77;;;7375:20;7523:23;1323:2191:166;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1323:2191:166;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1323:2191:166;;;7375:20:77;7763:32;1323:2191:166;;;;7375:20:77;1323:2191:166;;;;;7375:20:77;1323:2191:166;6928:687:40;1323:2191:166;;:::i;:::-;;;;7100:22:40;;;;1323:2191:166;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;1323:2191:166;;:::i;:::-;;;;8017:25:40;;;;1323:2191:166;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;1323:2191:166;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1323:2191:166;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1323:2191:166;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1323:2191:166;;;;4933:24:66;1323:2191:166;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"46093":[{"start":5612,"length":32},{"start":5819,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","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","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"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\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"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\":[],\"name\":\"FailedCall\",\"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\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token. VARA is also used for paying fees, staking and governance on Vara Network, while WVARA does all of the same things but on Ethereum. On Ethereum network, WVARA is used as an executable balance for programs (Mirrors). Please note that this version of WrappedVara is only used in local development environments, in production we use this: - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"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.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"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.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"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.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"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.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"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\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"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\":\"Returns the value of tokens owned by `account`.\"},\"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. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"initialize(address)\":{\"details\":\"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.\",\"params\":{\"initialOwner\":\"The address that will be able to mint tokens.\"}},\"mint(address,uint256)\":{\"details\":\"Mints `amount` tokens to `to`.\",\"params\":{\"amount\":\"The amount of tokens to mint.\",\"to\":\"The address to mint tokens to.\"}},\"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.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"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\":\"Returns the value of tokens in existence.\"},\"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.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/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/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"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\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0\",\"dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51\"]},\"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\":\"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739\",\"dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC\"]},\"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\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd\",\"license\":\"GPL-3.0-or-later WITH Classpath-exception-2.0\",\"urls\":[\"bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb\",\"dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"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":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"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":[],"type":"error","name":"FailedCall"},{"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":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"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":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"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":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"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"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"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":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"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":"Returns the value of tokens owned by `account`."},"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. Also see documentation about decimals: - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"initialize(address)":{"details":"Initializes the WrappedVara contract with the token name and symbol.The initialOwner receives the 1 million WVARA tokens minted during initialization.","params":{"initialOwner":"The address that will be able to mint tokens."}},"mint(address,uint256)":{"details":"Mints `amount` tokens to `to`.","params":{"amount":"The amount of tokens to mint.","to":"The address to mint tokens to."}},"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."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"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":"Returns the value of tokens in existence."},"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."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/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/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/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/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","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":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022","urls":["bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0","dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51"],"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":"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659","urls":["bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739","dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC"],"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":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e","urls":["bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23","dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x36d7dd303d4eaa38bbf5178a1292509b9e05161142a3b4f11bbc5488cbd0d5bd","urls":["bzz-raw://48fde6f500da4a712063763076f03c0613a7800d689055d088aa015f509b20cb","dweb:/ipfs/QmdDvTX8ZRtAjZwZPgXJpNNfpbyXXQ2YSN6fdD9EccJBHn"],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":82576,"exportedSymbols":{"ERC20BurnableUpgradeable":[43269],"ERC20PermitUpgradeable":[43438],"ERC20Upgradeable":[43207],"Initializable":[42590],"OwnableUpgradeable":[42322],"UUPSUpgradeable":[46243],"WrappedVara":[82575]},"nodeType":"SourceUnit","src":"74:3441:166","nodes":[{"id":82434,"nodeType":"PragmaDirective","src":"74:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82436,"nodeType":"ImportDirective","src":"100:101:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82576,"sourceUnit":42323,"symbolAliases":[{"foreign":{"id":82435,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42322,"src":"108:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82438,"nodeType":"ImportDirective","src":"202:96:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":82576,"sourceUnit":42591,"symbolAliases":[{"foreign":{"id":82437,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42590,"src":"210:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82440,"nodeType":"ImportDirective","src":"299:102:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":82576,"sourceUnit":43208,"symbolAliases":[{"foreign":{"id":82439,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43207,"src":"307:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82442,"nodeType":"ImportDirective","src":"402:135:166","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":82576,"sourceUnit":43270,"symbolAliases":[{"foreign":{"id":82441,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43269,"src":"415:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82444,"nodeType":"ImportDirective","src":"538:131:166","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":82576,"sourceUnit":43439,"symbolAliases":[{"foreign":{"id":82443,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43438,"src":"551:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82446,"nodeType":"ImportDirective","src":"670:88:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":82576,"sourceUnit":46244,"symbolAliases":[{"foreign":{"id":82445,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46243,"src":"678:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82575,"nodeType":"ContractDefinition","src":"1323:2191:166","nodes":[{"id":82462,"nodeType":"VariableDeclaration","src":"1496:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"1520:10:166","scope":82575,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82460,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":82461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1533:14:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":82465,"nodeType":"VariableDeclaration","src":"1553:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"1577:12:166","scope":82575,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":82463,"name":"string","nodeType":"ElementaryTypeName","src":"1553:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":82464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1592:7:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":82468,"nodeType":"VariableDeclaration","src":"1605:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1630:20:166","scope":82575,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82466,"name":"uint256","nodeType":"ElementaryTypeName","src":"1605:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":82467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1653:9:166","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":82476,"nodeType":"FunctionDefinition","src":"1737:53:166","nodes":[],"body":{"id":82475,"nodeType":"Block","src":"1751:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82472,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42544,"src":"1761:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82474,"nodeType":"ExpressionStatement","src":"1761:22:166"}]},"documentation":{"id":82469,"nodeType":"StructuredDocumentation","src":"1669:63:166","text":" @custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82470,"nodeType":"ParameterList","parameters":[],"src":"1748:2:166"},"returnParameters":{"id":82471,"nodeType":"ParameterList","parameters":[],"src":"1751:0:166"},"scope":82575,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82511,"nodeType":"FunctionDefinition","src":"2061:297:166","nodes":[],"body":{"id":82510,"nodeType":"Block","src":"2122:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82485,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82462,"src":"2145:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82486,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82465,"src":"2157:12:166","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":82484,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2132:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82488,"nodeType":"ExpressionStatement","src":"2132:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82489,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2180:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2180:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82491,"nodeType":"ExpressionStatement","src":"2180:22:166"},{"expression":{"arguments":[{"id":82493,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82479,"src":"2227:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82492,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2212:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2212:28:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82495,"nodeType":"ExpressionStatement","src":"2212:28:166"},{"expression":{"arguments":[{"id":82497,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82462,"src":"2269:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82496,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2250:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82499,"nodeType":"ExpressionStatement","src":"2250:30:166"},{"expression":{"arguments":[{"id":82501,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82479,"src":"2297:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82502,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82468,"src":"2311:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":82503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:2:166","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":82504,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[82558],"referencedDeclaration":82558,"src":"2340:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":82505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2340:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2334:16:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2311:39:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82500,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"2291:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2291:60:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82509,"nodeType":"ExpressionStatement","src":"2291:60:166"}]},"documentation":{"id":82477,"nodeType":"StructuredDocumentation","src":"1796:260:166","text":" @dev Initializes the WrappedVara contract with the token name and symbol.\n @param initialOwner The address that will be able to mint tokens.\n @dev The initialOwner receives the 1 million WVARA tokens minted during initialization."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":82482,"kind":"modifierInvocation","modifierName":{"id":82481,"name":"initializer","nameLocations":["2110:11:166"],"nodeType":"IdentifierPath","referencedDeclaration":42430,"src":"2110:11:166"},"nodeType":"ModifierInvocation","src":"2110:11:166"}],"name":"initialize","nameLocation":"2070:10:166","parameters":{"id":82480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82479,"mutability":"mutable","name":"initialOwner","nameLocation":"2089:12:166","nodeType":"VariableDeclaration","scope":82511,"src":"2081:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82478,"name":"address","nodeType":"ElementaryTypeName","src":"2081:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2080:22:166"},"returnParameters":{"id":82483,"nodeType":"ParameterList","parameters":[],"src":"2122:0:166"},"scope":82575,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82538,"nodeType":"FunctionDefinition","src":"2431:218:166","nodes":[],"body":{"id":82537,"nodeType":"Block","src":"2489:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82521,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82462,"src":"2512:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":82522,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82465,"src":"2524:12:166","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":82520,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42658,"src":"2499:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":82523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2499:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82524,"nodeType":"ExpressionStatement","src":"2499:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82525,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43228,"src":"2547:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82527,"nodeType":"ExpressionStatement","src":"2547:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82529,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42233,"src":"2594:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2594:7:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82528,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42182,"src":"2579:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2579:23:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82532,"nodeType":"ExpressionStatement","src":"2579:23:166"},{"expression":{"arguments":[{"id":82534,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82462,"src":"2631:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":82533,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43325,"src":"2612:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2612:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82536,"nodeType":"ExpressionStatement","src":"2612:30:166"}]},"documentation":{"id":82512,"nodeType":"StructuredDocumentation","src":"2364:62:166","text":" @custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82515,"kind":"modifierInvocation","modifierName":{"id":82514,"name":"onlyOwner","nameLocations":["2462:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2462:9:166"},"nodeType":"ModifierInvocation","src":"2462:9:166"},{"arguments":[{"hexValue":"32","id":82517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2486:1:166","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":82518,"kind":"modifierInvocation","modifierName":{"id":82516,"name":"reinitializer","nameLocations":["2472:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42477,"src":"2472:13:166"},"nodeType":"ModifierInvocation","src":"2472:16:166"}],"name":"reinitialize","nameLocation":"2440:12:166","parameters":{"id":82513,"nodeType":"ParameterList","parameters":[],"src":"2452:2:166"},"returnParameters":{"id":82519,"nodeType":"ParameterList","parameters":[],"src":"2489:0:166"},"scope":82575,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82548,"nodeType":"FunctionDefinition","src":"2814:84:166","nodes":[],"body":{"id":82547,"nodeType":"Block","src":"2896:2:166","nodes":[],"statements":[]},"baseFunctions":[46197],"documentation":{"id":82539,"nodeType":"StructuredDocumentation","src":"2655:154:166","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":82545,"kind":"modifierInvocation","modifierName":{"id":82544,"name":"onlyOwner","nameLocations":["2886:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"2886:9:166"},"nodeType":"ModifierInvocation","src":"2886:9:166"}],"name":"_authorizeUpgrade","nameLocation":"2823:17:166","overrides":{"id":82543,"nodeType":"OverrideSpecifier","overrides":[],"src":"2877:8:166"},"parameters":{"id":82542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82541,"mutability":"mutable","name":"newImplementation","nameLocation":"2849:17:166","nodeType":"VariableDeclaration","scope":82548,"src":"2841:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82540,"name":"address","nodeType":"ElementaryTypeName","src":"2841:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2840:27:166"},"returnParameters":{"id":82546,"nodeType":"ParameterList","parameters":[],"src":"2896:0:166"},"scope":82575,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82558,"nodeType":"FunctionDefinition","src":"3172:83:166","nodes":[],"body":{"id":82557,"nodeType":"Block","src":"3229:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":82555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:2:166","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":82554,"id":82556,"nodeType":"Return","src":"3239:9:166"}]},"baseFunctions":[42727],"documentation":{"id":82549,"nodeType":"StructuredDocumentation","src":"2904:263:166","text":" @dev Returns the number of decimals used to get its user representation.\n Also see documentation about decimals:\n - https://wiki.vara.network/docs/vara-network/staking/validator-faqs#what-is-the-precision-of-the-vara-token"},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3181:8:166","overrides":{"id":82551,"nodeType":"OverrideSpecifier","overrides":[],"src":"3204:8:166"},"parameters":{"id":82550,"nodeType":"ParameterList","parameters":[],"src":"3189:2:166"},"returnParameters":{"id":82554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82558,"src":"3222:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":82552,"name":"uint8","nodeType":"ElementaryTypeName","src":"3222:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3221:7:166"},"scope":82575,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":82574,"nodeType":"FunctionDefinition","src":"3419:93:166","nodes":[],"body":{"id":82573,"nodeType":"Block","src":"3478:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":82569,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82561,"src":"3494:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82563,"src":"3498:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82568,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43039,"src":"3488:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":82571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3488:17:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82572,"nodeType":"ExpressionStatement","src":"3488:17:166"}]},"documentation":{"id":82559,"nodeType":"StructuredDocumentation","src":"3261:153:166","text":" @dev Mints `amount` tokens to `to`.\n @param to The address to mint tokens to.\n @param amount The amount of tokens to mint."},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":82566,"kind":"modifierInvocation","modifierName":{"id":82565,"name":"onlyOwner","nameLocations":["3468:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":42217,"src":"3468:9:166"},"nodeType":"ModifierInvocation","src":"3468:9:166"}],"name":"mint","nameLocation":"3428:4:166","parameters":{"id":82564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82561,"mutability":"mutable","name":"to","nameLocation":"3441:2:166","nodeType":"VariableDeclaration","scope":82574,"src":"3433:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82560,"name":"address","nodeType":"ElementaryTypeName","src":"3433:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82563,"mutability":"mutable","name":"amount","nameLocation":"3453:6:166","nodeType":"VariableDeclaration","scope":82574,"src":"3445:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82562,"name":"uint256","nodeType":"ElementaryTypeName","src":"3445:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3432:28:166"},"returnParameters":{"id":82567,"nodeType":"ParameterList","parameters":[],"src":"3478:0:166"},"scope":82575,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":82448,"name":"Initializable","nameLocations":["1351:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":42590,"src":"1351:13:166"},"id":82449,"nodeType":"InheritanceSpecifier","src":"1351:13:166"},{"baseName":{"id":82450,"name":"ERC20Upgradeable","nameLocations":["1370:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":43207,"src":"1370:16:166"},"id":82451,"nodeType":"InheritanceSpecifier","src":"1370:16:166"},{"baseName":{"id":82452,"name":"ERC20BurnableUpgradeable","nameLocations":["1392:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":43269,"src":"1392:24:166"},"id":82453,"nodeType":"InheritanceSpecifier","src":"1392:24:166"},{"baseName":{"id":82454,"name":"OwnableUpgradeable","nameLocations":["1422:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":42322,"src":"1422:18:166"},"id":82455,"nodeType":"InheritanceSpecifier","src":"1422:18:166"},{"baseName":{"id":82456,"name":"ERC20PermitUpgradeable","nameLocations":["1446:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":43438,"src":"1446:22:166"},"id":82457,"nodeType":"InheritanceSpecifier","src":"1446:22:166"},{"baseName":{"id":82458,"name":"UUPSUpgradeable","nameLocations":["1474:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":46243,"src":"1474:15:166"},"id":82459,"nodeType":"InheritanceSpecifier","src":"1474:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","documentation":{"id":82447,"nodeType":"StructuredDocumentation","src":"760:562:166","text":" @dev Wrapped Vara (WVARA) is represents VARA on Ethereum as ERC20 token.\n VARA is also used for paying fees, staking and governance on Vara Network,\n while WVARA does all of the same things but on Ethereum.\n On Ethereum network, WVARA is used as an executable balance for programs (Mirrors).\n Please note that this version of WrappedVara is only used in local development environments,\n in production we use this:\n - https://github.com/gear-tech/gear-bridges/blob/main/ethereum/src/erc20/WrappedVara.sol"},"fullyImplemented":true,"linearizedBaseContracts":[82575,46243,44833,43438,43698,44416,44823,46898,42322,43269,43207,44875,46862,46836,43484,42590],"name":"WrappedVara","nameLocation":"1332:11:166","scope":82576,"usedErrors":[42158,42163,42339,42342,43304,43311,43601,44845,44850,44855,44864,44869,44874,45427,45440,46100,46105,47372,48774,50701,50706,50711],"usedEvents":[42169,42347,44781,44803,46770,46779]}],"license":"GPL-3.0-or-later WITH Classpath-exception-2.0"},"id":166} \ No newline at end of file diff --git a/ethexe/ethereum/src/abi/events/router.rs b/ethexe/ethereum/src/abi/events/router.rs index 641f12566db..f0b229a7116 100644 --- a/ethexe/ethereum/src/abi/events/router.rs +++ b/ethexe/ethereum/src/abi/events/router.rs @@ -24,6 +24,14 @@ impl From for EBCommittedEvent { } } +impl From for ProtocolVersionChangedEvent { + fn from(value: IRouter::ProtocolVersionChanged) -> Self { + Self { + new_protocol_version: uint256_to_u256(value.newProtocolVersion), + } + } +} + impl From for CodeGotValidatedEvent { fn from(value: IRouter::CodeGotValidated) -> Self { Self { diff --git a/ethexe/ethereum/src/lib.rs b/ethexe/ethereum/src/lib.rs index cece30db34d..e491fbe51c7 100644 --- a/ethexe/ethereum/src/lib.rs +++ b/ethexe/ethereum/src/lib.rs @@ -289,6 +289,9 @@ pub struct Ethereum { } impl Ethereum { + /// Client protocol version. + pub const CLIENT_PROTOCOL_VERSION: u64 = 1; + /// Default Ethereum RPC. pub const DEFAULT_ETHEREUM_RPC: &str = "ws://localhost:8545"; /// Default Ethereum router contract address. @@ -337,6 +340,14 @@ impl Ethereum { let router_query = RouterQuery::from_provider(router_address, provider.root().clone()); let router = router_address.into(); let (wvara, middleware) = if initialize_addresses { + let protocol_version = router_query.protocol_version().await?; + if protocol_version > Self::CLIENT_PROTOCOL_VERSION { + return Err(anyhow!( + "Client protocol version mismatch. Expected {client_protocol_version}, got {protocol_version}. \ + Please make sure to use compatible version of Ethereum client with `Router` contract.", + client_protocol_version = Self::CLIENT_PROTOCOL_VERSION, + )); + } ( router_query.wvara_address().await?.into(), router_query.middleware_address().await?.into(), diff --git a/ethexe/ethereum/src/mirror/events.rs b/ethexe/ethereum/src/mirror/events.rs index 52ea1bbb4d6..4e14747a43b 100644 --- a/ethexe/ethereum/src/mirror/events.rs +++ b/ethexe/ethereum/src/mirror/events.rs @@ -11,7 +11,7 @@ use alloy::{ }; use anyhow::Result; use ethexe_common::events::{ - MirrorEvent, MirrorRequestEvent, + MirrorEvent, mirror::{ ExecutableBalanceTopUpRequestedEvent, MessageCallFailedEvent, MessageEvent, MessageQueueingRequestedEvent, OwnedBalanceTopUpRequestedEvent, ReplyCallFailedEvent, @@ -107,18 +107,6 @@ pub fn try_extract_event(log: &Log) -> Result> { Ok(Some(event)) } -pub fn try_extract_request_event(log: &Log) -> Result> { - if log.topic0().filter(|&v| REQUESTS.contains(v)).is_none() { - return Ok(None); - } - - let request_event = try_extract_event(log)? - .and_then(|v| v.to_request()) - .expect("filtered above"); - - Ok(Some(request_event)) -} - pub struct AllEventsBuilder<'a> { query: &'a MirrorQuery, } diff --git a/ethexe/ethereum/src/router/events.rs b/ethexe/ethereum/src/router/events.rs index 9d092cddf4f..7f003ccadbf 100644 --- a/ethexe/ethereum/src/router/events.rs +++ b/ethexe/ethereum/src/router/events.rs @@ -16,7 +16,7 @@ use alloy::{ }; use anyhow::{Result, anyhow}; use ethexe_common::events::{ - RouterEvent, RouterRequestEvent, + RouterEvent, router::{ BatchCommittedEvent, CodeGotValidatedEvent, CodeValidationRequestedEvent, ComputationSettingsChangedEvent, EBCommittedEvent, MBCommittedEvent, ProgramCreatedEvent, @@ -35,6 +35,7 @@ pub mod signatures { BATCH_COMMITTED: BatchCommitted, MB_COMMITTED: MBCommitted, EB_COMMITTED: EBCommitted, + PROTOCOL_VERSION_CHANGED: ProtocolVersionChanged, CODE_GOT_VALIDATED: CodeGotValidated, CODE_VALIDATION_REQUESTED: CodeValidationRequested, COMPUTATION_SETTINGS_CHANGED: ComputationSettingsChanged, @@ -63,6 +64,9 @@ pub fn try_extract_event(log: &Log) -> Result> { } MB_COMMITTED => RouterEvent::MBCommitted(decode_log::(log)?.into()), EB_COMMITTED => RouterEvent::EBCommitted(decode_log::(log)?.into()), + PROTOCOL_VERSION_CHANGED => RouterEvent::ProtocolVersionChanged( + decode_log::(log)?.into(), + ), CODE_GOT_VALIDATED => { RouterEvent::CodeGotValidated(decode_log::(log)?.into()) } @@ -99,18 +103,6 @@ pub fn try_extract_event(log: &Log) -> Result> { Ok(Some(event)) } -pub fn try_extract_request_event(log: &Log) -> Result> { - if log.topic0().filter(|&v| REQUESTS.contains(v)).is_none() { - return Ok(None); - } - - let request_event = try_extract_event(log)? - .and_then(|v| v.to_request()) - .expect("filtered above"); - - Ok(Some(request_event)) -} - pub struct AllEventsBuilder<'a> { query: &'a RouterQuery, } diff --git a/ethexe/ethereum/src/router/mod.rs b/ethexe/ethereum/src/router/mod.rs index 045ffad48f6..52ef7947f2f 100644 --- a/ethexe/ethereum/src/router/mod.rs +++ b/ethexe/ethereum/src/router/mod.rs @@ -908,6 +908,15 @@ impl RouterQuery { Ok(extra_fee.try_into().expect("infallible")) } + pub async fn protocol_version(&self) -> Result { + self.instance + .protocolVersion() + .call() + .await + .map(|res| res.to()) + .map_err(Into::into) + } + pub async fn timelines(&self) -> Result { self.instance .timelines() diff --git a/ethexe/observer/src/lib.rs b/ethexe/observer/src/lib.rs index 30d3e1c2857..37a81a2bb6b 100644 --- a/ethexe/observer/src/lib.rs +++ b/ethexe/observer/src/lib.rs @@ -235,6 +235,13 @@ impl Stream for ObserverService { cx.waker().wake_by_ref(); return Poll::Pending; } + Err(SyncError::ProtocolVersionMismatch { expected, got }) => { + return Poll::Ready(Some(Err(SyncError::ProtocolVersionMismatch { + expected, + got, + } + .into()))); + } Err(SyncError::Fatal(err)) => { return Poll::Ready(Some(Err(err))); } diff --git a/ethexe/observer/src/sync.rs b/ethexe/observer/src/sync.rs index 67e136d415b..b9fb17f21e6 100644 --- a/ethexe/observer/src/sync.rs +++ b/ethexe/observer/src/sync.rs @@ -16,14 +16,18 @@ use anyhow::{Context as _, anyhow}; use ethexe_common::{ self, BlockData, BlockHeader, CodeBlobInfo, SimpleBlockData, db::{GlobalsStorageRO, GlobalsStorageRW, OnChainStorageRO, OnChainStorageRW}, - events::{BlockEvent, RouterEvent, router::CodeValidationRequestedEvent}, + events::{ + BlockEvent, RouterEvent, + router::{CodeValidationRequestedEvent, ProtocolVersionChangedEvent}, + }, }; use ethexe_db::Database; use ethexe_ethereum::{ + Ethereum, middleware::{ElectionProvider, MiddlewareQuery}, router::RouterQuery, }; -use gprimitives::H256; +use gprimitives::{H256, U256}; use std::collections::HashMap; /// Outcome of one chain-sync attempt. `RpcError` is recoverable (caller @@ -32,6 +36,10 @@ use std::collections::HashMap; pub enum SyncError { #[error("RPC error during sync: {0:?}")] RpcError(anyhow::Error), + #[error( + "Client protocol version mismatch. Expected {expected}, got {got}. Please make sure to use compatible version of Ethereum client with `Router` contract." + )] + ProtocolVersionMismatch { expected: U256, got: U256 }, #[error(transparent)] Fatal(anyhow::Error), } @@ -107,7 +115,7 @@ impl ChainSync { &self, block: &SimpleBlockData, mut blocks_data: HashMap, - ) -> Result> { + ) -> SyncResult> { let mut chain = Vec::new(); let mut current_block_hash = block.hash; @@ -132,16 +140,32 @@ impl ChainSync { } for event in block_data.events.iter() { - if let &BlockEvent::Router(RouterEvent::CodeValidationRequested( - CodeValidationRequestedEvent { - code_id, - timestamp, - tx_hash, - }, - )) = event - { - self.db - .set_code_blob_info(code_id, CodeBlobInfo { timestamp, tx_hash }); + match *event { + BlockEvent::Router(RouterEvent::CodeValidationRequested( + CodeValidationRequestedEvent { + code_id, + timestamp, + tx_hash, + }, + )) => { + self.db + .set_code_blob_info(code_id, CodeBlobInfo { timestamp, tx_hash }); + } + BlockEvent::Router(RouterEvent::ProtocolVersionChanged( + ProtocolVersionChangedEvent { + new_protocol_version, + }, + )) => { + let client_protocol_version: U256 = + Ethereum::CLIENT_PROTOCOL_VERSION.into(); + if new_protocol_version > client_protocol_version { + return Err(SyncError::ProtocolVersionMismatch { + expected: client_protocol_version, + got: new_protocol_version, + }); + } + } + _ => {} } } diff --git a/ethexe/observer/src/tests.rs b/ethexe/observer/src/tests.rs index f7ed315033a..4c4e3fad264 100644 --- a/ethexe/observer/src/tests.rs +++ b/ethexe/observer/src/tests.rs @@ -248,7 +248,7 @@ async fn validators_at_on_orphaned_block_is_recoverable_rpc_error() -> Result<() .expect_err("validators_at must error on a reorged-out block"); match SyncError::from(err) { - SyncError::RpcError(_) => Ok(()), SyncError::Fatal(err) => panic!("expected RpcError, got Fatal: {err:?}"), + _ => Ok(()), } } diff --git a/ethexe/sdk/src/router.rs b/ethexe/sdk/src/router.rs index 4130b70ca14..0a508bd4fdc 100644 --- a/ethexe/sdk/src/router.rs +++ b/ethexe/sdk/src/router.rs @@ -180,6 +180,22 @@ impl<'a> Router<'a> { self.router_query_client.validated_codes_count_at(id).await } + pub async fn request_code_validation_base_fee(&self) -> Result { + self.router_query_client + .request_code_validation_base_fee() + .await + } + + pub async fn request_code_validation_extra_fee(&self) -> Result { + self.router_query_client + .request_code_validation_extra_fee() + .await + } + + pub async fn protocol_version(&self) -> Result { + self.router_query_client.protocol_version().await + } + pub async fn timelines(&self) -> Result { self.router_query_client.timelines().await } diff --git a/ethexe/service/src/lib.rs b/ethexe/service/src/lib.rs index ecc4dbca4e5..9b4427e1c45 100644 --- a/ethexe/service/src/lib.rs +++ b/ethexe/service/src/lib.rs @@ -37,7 +37,7 @@ use alloy::{ providers::{ProviderBuilder, RootProvider, ext::AnvilApi}, rpc::types::anvil::Metadata, }; -use anyhow::{Context, Result, bail}; +use anyhow::{Context, Result, anyhow, bail}; use async_trait::async_trait; use ethexe_blob_loader::{BlobLoader, BlobLoaderEvent, BlobLoaderService, ConsensusLayerConfig}; use ethexe_common::{ @@ -60,7 +60,7 @@ use ethexe_network::{ NetworkEvent, NetworkRuntimeConfig, NetworkService, db_sync::ExternalDataProvider, }; use ethexe_observer::{ - ObserverConfig, ObserverEvent, ObserverService, + ObserverConfig, ObserverEvent, ObserverService, SyncError, utils::{BlockId, BlockLoader}, }; use ethexe_processor::{ProcessedCodeInfo, Processor, ProcessorConfig, ValidCodeInfo}; @@ -669,24 +669,38 @@ impl Service { let mut network_injected_txs: HashMap<_, Vec>> = HashMap::new(); loop { - let event: Event = tokio::select! { - event = compute.select_next_some() => event?.into(), - event = consensus.maybe_next_some() => event?.into(), - event = malachite.maybe_next_some() => event?.into(), - event = network.maybe_next_some() => event.into(), - event = observer.select_next_some() => event?.into(), - event = blob_loader.select_next_some() => event?.into(), - event = rpc.maybe_next_some() => event.into(), - event = prometheus.maybe_next_some() => event.into(), + let event: Option = tokio::select! { + event = compute.select_next_some() => Some(event?.into()), + event = consensus.maybe_next_some() => Some(event?.into()), + event = malachite.maybe_next_some() => Some(event?.into()), + event = network.maybe_next_some() => Some(event.into()), + event = observer.select_next_some() => match event { + Ok(event) => Some(event.into()), + Err(err) => { + if matches!(err.downcast_ref::(), Some(SyncError::ProtocolVersionMismatch { .. })) { + log::info!("Observer requested graceful shutdown: {err:#}"); + None + } else { + return Err(err); + } + } + }, + event = blob_loader.select_next_some() => Some(event?.into()), + event = rpc.maybe_next_some() => Some(event.into()), + event = prometheus.maybe_next_some() => Some(event.into()), _ = rpc_handle.as_mut().maybe() => { - bail!("`RPCWorker` has terminated, shutting down...") + return Err(anyhow!("`RPCWorker` has terminated, shutting down...")); } _ = async { shutdown_rx.as_mut().unwrap().await }, if shutdown_rx.is_some() => { log::info!("Graceful shutdown requested"); - break; + None } }; + let Some(event) = event else { + break; + }; + log::trace!("Primary service produced event, start handling: {event:?}"); #[cfg(test)]